summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authortomas@poseidon.ndb.mysql.com <>2005-06-02 18:40:25 +0200
committertomas@poseidon.ndb.mysql.com <>2005-06-02 18:40:25 +0200
commit644906bf9c6ec612abfdebe7f0b51ff8b9e01664 (patch)
tree3380fac1e38c78273621c53282f01b7b49747471 /sql/handler.cc
parent2dca9d5953b7bd4d3c93f36757e44ae8531ecbde (diff)
downloadmariadb-git-644906bf9c6ec612abfdebe7f0b51ff8b9e01664.tar.gz
bitmap bug fixes and interface change
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc21
1 files changed, 16 insertions, 5 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index ff9a8e96268..8d23b4fa324 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1360,20 +1360,31 @@ int handler::ha_initialise()
int handler::ha_allocate_read_write_set(ulong no_fields)
{
uint bitmap_size= 4*(((no_fields+1)+31)/32);
- uchar *read_buf, *write_buf;
+ uint32 *read_buf, *write_buf;
+#ifndef DEBUG_OFF
+ my_bool r;
+#endif
DBUG_ENTER("ha_allocate_read_write_set");
DBUG_PRINT("info", ("no_fields = %d", no_fields));
read_set= (MY_BITMAP*)sql_alloc(sizeof(MY_BITMAP));
write_set= (MY_BITMAP*)sql_alloc(sizeof(MY_BITMAP));
- read_buf= (uchar*)sql_alloc(bitmap_size);
- write_buf= (uchar*)sql_alloc(bitmap_size);
- DBUG_ASSERT(!bitmap_init(read_set, read_buf, (no_fields+1), FALSE));
- DBUG_ASSERT(!bitmap_init(write_set, write_buf, (no_fields+1), FALSE));
+ read_buf= (uint32*)sql_alloc(bitmap_size);
+ write_buf= (uint32*)sql_alloc(bitmap_size);
if (!read_set || !write_set || !read_buf || !write_buf)
{
ha_deallocate_read_write_set();
DBUG_RETURN(TRUE);
}
+#ifndef DEBUG_OFF
+ r =
+#endif
+ bitmap_init(read_set, read_buf, no_fields+1, FALSE);
+ DBUG_ASSERT(!r /*bitmap_init(read_set...)*/);
+#ifndef DEBUG_OFF
+ r =
+#endif
+ bitmap_init(write_set, write_buf, no_fields+1, FALSE);
+ DBUG_ASSERT(!r /*bitmap_init(write_set...)*/);
ha_clear_all_set();
DBUG_RETURN(FALSE);
}