Loading heap/hp_block.c +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ int hp_get_new_block(HP_BLOCK *block, ulong *alloc_length) and my_default_record_cache_size we get about 1/128 unused memory. */ *alloc_length=sizeof(HP_PTRS)*i+block->records_in_block* block->recbuffer; if (!(root=(HP_PTRS*) my_malloc(*alloc_length,MYF(0)))) if (!(root=(HP_PTRS*) my_malloc(*alloc_length,MYF(MY_WME)))) return 1; if (i == 0) Loading heap/hp_write.c +9 −3 Original line number Diff line number Diff line Loading @@ -68,11 +68,17 @@ int heap_write(HP_INFO *info, const byte *record) DBUG_RETURN(0); err: if (my_errno == HA_ERR_FOUND_DUPP_KEY) DBUG_PRINT("info",("Duplicate key: %d", keydef - share->keydef)); info->errkey= keydef - share->keydef; if (keydef->algorithm == HA_KEY_ALG_BTREE) /* We don't need to delete non-inserted key from rb-tree. Also, if we got ENOMEM, the key wasn't inserted, so don't try to delete it either. Otherwise for HASH index on HA_ERR_FOUND_DUPP_KEY the key was inserted and we have to delete it. */ if (keydef->algorithm == HA_KEY_ALG_BTREE || my_errno == ENOMEM) { /* we don't need to delete non-inserted key from rb-tree */ keydef--; } while (keydef >= share->keydef) Loading sql/item_func.cc +3 −2 Original line number Diff line number Diff line Loading @@ -2473,8 +2473,9 @@ bool Item_func_set_user_var::update_hash(void *ptr, uint length, char *pos= (char*) entry+ ALIGN_SIZE(sizeof(user_var_entry)); if (entry->value == pos) entry->value=0; if (!(entry->value=(char*) my_realloc(entry->value, length, MYF(MY_ALLOW_ZERO_PTR)))) entry->value= (char*) my_realloc(entry->value, length, MYF(MY_ALLOW_ZERO_PTR | MY_WME)); if (!entry->value) goto err; } } Loading Loading
heap/hp_block.c +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ int hp_get_new_block(HP_BLOCK *block, ulong *alloc_length) and my_default_record_cache_size we get about 1/128 unused memory. */ *alloc_length=sizeof(HP_PTRS)*i+block->records_in_block* block->recbuffer; if (!(root=(HP_PTRS*) my_malloc(*alloc_length,MYF(0)))) if (!(root=(HP_PTRS*) my_malloc(*alloc_length,MYF(MY_WME)))) return 1; if (i == 0) Loading
heap/hp_write.c +9 −3 Original line number Diff line number Diff line Loading @@ -68,11 +68,17 @@ int heap_write(HP_INFO *info, const byte *record) DBUG_RETURN(0); err: if (my_errno == HA_ERR_FOUND_DUPP_KEY) DBUG_PRINT("info",("Duplicate key: %d", keydef - share->keydef)); info->errkey= keydef - share->keydef; if (keydef->algorithm == HA_KEY_ALG_BTREE) /* We don't need to delete non-inserted key from rb-tree. Also, if we got ENOMEM, the key wasn't inserted, so don't try to delete it either. Otherwise for HASH index on HA_ERR_FOUND_DUPP_KEY the key was inserted and we have to delete it. */ if (keydef->algorithm == HA_KEY_ALG_BTREE || my_errno == ENOMEM) { /* we don't need to delete non-inserted key from rb-tree */ keydef--; } while (keydef >= share->keydef) Loading
sql/item_func.cc +3 −2 Original line number Diff line number Diff line Loading @@ -2473,8 +2473,9 @@ bool Item_func_set_user_var::update_hash(void *ptr, uint length, char *pos= (char*) entry+ ALIGN_SIZE(sizeof(user_var_entry)); if (entry->value == pos) entry->value=0; if (!(entry->value=(char*) my_realloc(entry->value, length, MYF(MY_ALLOW_ZERO_PTR)))) entry->value= (char*) my_realloc(entry->value, length, MYF(MY_ALLOW_ZERO_PTR | MY_WME)); if (!entry->value) goto err; } } Loading