31 array_ =
new uinT32[WordLength()];
36 array_ =
new uinT32[WordLength()];
37 memcpy(array_, src.array_, ByteLength());
42 memcpy(array_, src.array_, ByteLength());
58 if (fwrite(&bit_size_,
sizeof(bit_size_), 1, fp) != 1)
return false;
59 int wordlen = WordLength();
60 if (fwrite(array_,
sizeof(*array_), wordlen, fp) != wordlen)
return false;
68 if (fread(&new_bit_size,
sizeof(new_bit_size), 1, fp) != 1)
return false;
70 ReverseN(&new_bit_size,
sizeof(new_bit_size));
73 int wordlen = WordLength();
74 if (fread(array_,
sizeof(*array_), wordlen, fp) != wordlen)
return false;
76 for (
int i = 0; i < wordlen; ++i)
77 ReverseN(&array_[i],
sizeof(array_[i]));
83 memset(array_, 0, ByteLength());
86 memset(array_, ~0, ByteLength());
91 void BitVector::Alloc(
int length) {
92 int initial_wordlength = WordLength();
94 int new_wordlength = WordLength();
95 if (new_wordlength != initial_wordlength) {
97 array_ =
new uinT32[new_wordlength];