mirror of https://github.com/aria2/aria2
2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed integer potential alignment problem. * src/bitfield.hpull/1/head
parent
548585cccc
commit
2923682aa6
|
@ -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
|
||||
|
|
|
@ -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]));
|
||||
|
|
Loading…
Reference in New Issue