summaryrefslogtreecommitdiff
path: root/mysys/my_malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mysys/my_malloc.c')
-rw-r--r--mysys/my_malloc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mysys/my_malloc.c b/mysys/my_malloc.c
index fc2dc98c3c5..93eb547888f 100644
--- a/mysys/my_malloc.c
+++ b/mysys/my_malloc.c
@@ -41,6 +41,11 @@ void *my_malloc(size_t size, myf my_flags)
free(point);
point= NULL;
});
+ DBUG_EXECUTE_IF("simulate_persistent_out_of_memory",
+ {
+ free(point);
+ point= NULL;
+ });
if (point == NULL)
{
@@ -48,7 +53,8 @@ void *my_malloc(size_t size, myf my_flags)
if (my_flags & MY_FAE)
error_handler_hook=fatal_error_handler_hook;
if (my_flags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH),size);
+ my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG +
+ ME_NOREFRESH + ME_FATALERROR),size);
DBUG_EXECUTE_IF("simulate_out_of_memory",
DBUG_SET("-d,simulate_out_of_memory"););
if (my_flags & MY_FAE)
@@ -90,7 +96,7 @@ void *my_realloc(void *oldpoint, size_t size, myf my_flags)
DBUG_RETURN(oldpoint);
my_errno=errno;
if (my_flags & MY_FAE+MY_WME)
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),size);
+ my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG + ME_FATALERROR),size);
}
else
{
@@ -106,7 +112,7 @@ void *my_realloc(void *oldpoint, size_t size, myf my_flags)
DBUG_RETURN(oldpoint);
my_errno=errno;
if (my_flags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG), size);
+ my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG + ME_FATALERROR), size);
}
#endif
DBUG_PRINT("exit",("ptr: %p", point));