diff options
Diffstat (limited to 'sql/sql_bitmap.h')
-rw-r--r-- | sql/sql_bitmap.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sql/sql_bitmap.h b/sql/sql_bitmap.h index 2fd603d9381..b5a3803598f 100644 --- a/sql/sql_bitmap.h +++ b/sql/sql_bitmap.h @@ -25,7 +25,7 @@ template <uint default_width> class Bitmap { MY_BITMAP map; - uchar buffer[(default_width+7)/8]; + uint32 buffer[(default_width+31)/32]; public: Bitmap() { init(); } Bitmap(Bitmap& from) { *this=from; } @@ -62,17 +62,18 @@ public: char *print(char *buf) const { char *s=buf; int i; + uchar *uchar_buffer= (uchar*)&buffer; for (i=sizeof(buffer)-1; i>=0 ; i--) { - if ((*s=_dig_vec_upper[buffer[i] >> 4]) != '0') + if ((*s=_dig_vec_upper[uchar_buffer[i] >> 4]) != '0') break; - if ((*s=_dig_vec_upper[buffer[i] & 15]) != '0') + if ((*s=_dig_vec_upper[uchar_buffer[i] & 15]) != '0') break; } for (s++, i-- ; i>=0 ; i--) { - *s++=_dig_vec_upper[buffer[i] >> 4]; - *s++=_dig_vec_upper[buffer[i] & 15]; + *s++=_dig_vec_upper[uchar_buffer[i] >> 4]; + *s++=_dig_vec_upper[uchar_buffer[i] & 15]; } *s=0; return buf; |