2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Fixed integer potential alignment problem.
	* src/bitfield.h
pull/1/head
Tatsuhiro Tsujikawa 2009-11-15 11:29:24 +00:00
parent 548585cccc
commit 2923682aa6
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed integer potential alignment problem.
* src/bitfield.h
2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Applied a patch from tizianomueller to fix sigbus errors on Linux

View File

@ -39,6 +39,7 @@
#include <cassert>
#include <cstdlib>
#include <cstring>
#include "util.h"
@ -105,7 +106,9 @@ inline size_t countSetBit(const unsigned char* bitfield, size_t nbits)
}
size_t to = len/size;
for(size_t i = 0; i < to; ++i) {
count += countBit32(*reinterpret_cast<const uint32_t*>(&bitfield[i*size]));
uint32_t v;
memcpy(&v, &bitfield[i*size], sizeof(v));
count += countBit32(v);
}
for(size_t i = len-len%size; i < len; ++i) {
count += countBit32(static_cast<uint32_t>(bitfield[i]));