device.lseek(ODE_SUPERBLOCK_OFFSET + 36, SEEK_SET);
device.read(&clustersPerGroup, 4);
- // read bitmap
- bitmap.resize(totalBlockCount + 1);
-
unsigned int groupDescCount = divCeilSafely(totalBlockCount - firstDataBlock, blocksPerGroup);
int blockNbytes = clustersPerGroup / 8;
/* skip other member */
};
+ // read bitmap
+ {
+ unsigned int start = firstDataBlock;
+ unsigned int real_end = blocksPerGroup * groupDescCount - 1 + start;
+ size_t size = (size_t) (((real_end - start) / 8) + 1);
+ size = (size + 7) & ~3;
+ bitmap.resize(size);
+ }
+
for (unsigned int i = 0; i < groupDescCount; i++) {
data block_bitmap(blockSize);