diff --git a/ChangeLog b/ChangeLog index 0552cdbe..e005ad19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-15 Tatsuhiro Tsujikawa + + Fixed integer potential alignment problem. + * src/bitfield.h + 2009-11-15 Tatsuhiro Tsujikawa Applied a patch from tizianomueller to fix sigbus errors on Linux diff --git a/src/bitfield.h b/src/bitfield.h index 38d3b0a7..869010de 100644 --- a/src/bitfield.h +++ b/src/bitfield.h @@ -39,6 +39,7 @@ #include #include +#include #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(&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(bitfield[i]));