diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-04-21 10:20:20 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-04-21 10:20:20 +0300 |
commit | 28f01f82e1cb682566017b52017469be7638dd49 (patch) | |
tree | d496cb0936d25973b95f6eb591508c2e493032b8 /storage/myisam/myisampack.c | |
parent | a3099a3b4a394da360b5c1e7ae6dc985ae2f7f2f (diff) | |
parent | 80ed136e6dd4a021b1fc9b7bd7077bf989c3d247 (diff) | |
download | mariadb-git-bb-10.6-merge.tar.gz |
WIP merge 10.5 to 10.6bb-10.6-merge
FIXME: Disabled tests due to upgrading libmariadb:
main.mysql_client_test main.mysql_client_test_nonblock main.mysql_client_test_comp
Diffstat (limited to 'storage/myisam/myisampack.c')
-rw-r--r-- | storage/myisam/myisampack.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/storage/myisam/myisampack.c b/storage/myisam/myisampack.c index f7626f93acf..d6cd9334a55 100644 --- a/storage/myisam/myisampack.c +++ b/storage/myisam/myisampack.c @@ -1953,7 +1953,7 @@ static void make_traverse_code_tree(HUFF_TREE *huff_tree, { chr=element->a.leaf.element_nr; huff_tree->code_len[chr]= (uchar) (8 * sizeof(ulonglong) - size); - huff_tree->code[chr]= (code >> size); + huff_tree->code[chr]= (size == 8 * sizeof(ulonglong)) ? 0 : (code >> size); if (huff_tree->height < 8 * sizeof(ulonglong) - size) huff_tree->height= 8 * sizeof(ulonglong) - size; } @@ -2944,12 +2944,15 @@ static void flush_bits(void) ulonglong bit_buffer; bits= file_buffer.bits & ~7; - bit_buffer= file_buffer.bitbucket >> bits; - bits= BITS_SAVED - bits; - while (bits > 0) + if (bits != BITS_SAVED) { - bits-= 8; - *file_buffer.pos++= (uchar) (bit_buffer >> bits); + bit_buffer= file_buffer.bitbucket >> bits; + bits= BITS_SAVED - bits; + while (bits > 0) + { + bits-= 8; + *file_buffer.pos++= (uchar) (bit_buffer >> bits); + } } if (file_buffer.pos >= file_buffer.end) (void) flush_buffer(~ (ulong) 0); |