aboutsummaryrefslogtreecommitdiff
path: root/lout/misc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lout/misc.cc')
-rw-r--r--lout/misc.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/lout/misc.cc b/lout/misc.cc
index 8d630efc..9b333c93 100644
--- a/lout/misc.cc
+++ b/lout/misc.cc
@@ -133,6 +133,7 @@ void StringBuffer::clear ()
BitSet::BitSet(int initBits)
{
+ numBits = initBits;
numBytes = bytesForBits(initBits);
bits = (unsigned char*)malloc(numBytes * sizeof(unsigned char));
clear();
@@ -146,7 +147,7 @@ BitSet::~BitSet()
void BitSet::intoStringBuffer(misc::StringBuffer *sb)
{
sb->append("[");
- for (int i = 0; i < numBytes; i++)
+ for (int i = 0; i < numBits; i++)
sb->append(get(i) ? "1" : "0");
sb->append("]");
}
@@ -161,6 +162,9 @@ bool BitSet::get(int i) const
void BitSet::set(int i, bool val)
{
+ if (i > numBits)
+ numBits = i;
+
if (8 * i >= numBytes) {
int newNumBytes = numBytes;
while (8 * i >= newNumBytes)