diff options
Diffstat (limited to 'mysys/mf_keycache.c')
-rw-r--r-- | mysys/mf_keycache.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c index 0faba93c0a3..16ac749fa09 100644 --- a/mysys/mf_keycache.c +++ b/mysys/mf_keycache.c @@ -552,17 +552,21 @@ int init_simple_key_cache(SIMPLE_KEY_CACHE_CB *keycache, Allocate memory for blocks, hash_links and hash entries; For each block 2 hash links are allocated */ - if (my_multi_malloc(MYF(MY_ZEROFILL), - &keycache->block_root, blocks * sizeof(BLOCK_LINK), - &keycache->hash_root, - sizeof(HASH_LINK*) * keycache->hash_entries, - &keycache->hash_link_root, - hash_links * sizeof(HASH_LINK), - &keycache->changed_blocks, - sizeof(BLOCK_LINK*) * changed_blocks_hash_size, - &keycache->file_blocks, - sizeof(BLOCK_LINK*) * changed_blocks_hash_size, - NullS)) + if (my_multi_malloc_large(MYF(MY_ZEROFILL), + &keycache->block_root, + (ulonglong) (blocks * sizeof(BLOCK_LINK)), + &keycache->hash_root, + (ulonglong) (sizeof(HASH_LINK*) * + keycache->hash_entries), + &keycache->hash_link_root, + (ulonglong) (hash_links * sizeof(HASH_LINK)), + &keycache->changed_blocks, + (ulonglong) (sizeof(BLOCK_LINK*) * + changed_blocks_hash_size), + &keycache->file_blocks, + (ulonglong) (sizeof(BLOCK_LINK*) * + changed_blocks_hash_size), + NullS)) break; my_large_free(keycache->block_mem); keycache->block_mem= 0; |