mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Name resolution context added (BUG#6443)
This commit is contained in:
@ -109,6 +109,51 @@ void bitmap_set_bit(MY_BITMAP *map, uint bitmap_bit)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
test if bit already set and set it if it was not (thread unsafe method)
|
||||
|
||||
SYNOPSIS
|
||||
bitmap_fast_test_and_set()
|
||||
MAP bit map struct
|
||||
BIT bit number
|
||||
|
||||
RETURN
|
||||
0 bit was not set
|
||||
!=0 bit was set
|
||||
*/
|
||||
|
||||
my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit)
|
||||
{
|
||||
uchar *byte= map->bitmap + (bitmap_bit / 8);
|
||||
uchar bit= 1 << ((bitmap_bit) & 7);
|
||||
uchar res= (*byte) & bit;
|
||||
*byte|= bit;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
test if bit already set and set it if it was not (thread safe method)
|
||||
|
||||
SYNOPSIS
|
||||
bitmap_fast_test_and_set()
|
||||
map bit map struct
|
||||
bitmap_bit bit number
|
||||
|
||||
RETURN
|
||||
0 bit was not set
|
||||
!=0 bit was set
|
||||
*/
|
||||
|
||||
my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit)
|
||||
{
|
||||
my_bool res;
|
||||
DBUG_ASSERT(map->bitmap && bitmap_bit < map->bitmap_size*8);
|
||||
bitmap_lock(map);
|
||||
res= bitmap_fast_test_and_set(map, bitmap_bit);
|
||||
bitmap_unlock(map);
|
||||
}
|
||||
|
||||
uint bitmap_set_next(MY_BITMAP *map)
|
||||
{
|
||||
uchar *bitmap=map->bitmap;
|
||||
|
Reference in New Issue
Block a user