diff options
Diffstat (limited to 'intern/guardedalloc/intern/mallocn_lockfree_impl.c')
-rw-r--r-- | intern/guardedalloc/intern/mallocn_lockfree_impl.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/guardedalloc/intern/mallocn_lockfree_impl.c b/intern/guardedalloc/intern/mallocn_lockfree_impl.c index eaa60202f3c..a80d67c3e80 100644 --- a/intern/guardedalloc/intern/mallocn_lockfree_impl.c +++ b/intern/guardedalloc/intern/mallocn_lockfree_impl.c @@ -134,6 +134,14 @@ void MEM_lockfree_freeN(void *vmemh) MemHead *memh = MEMHEAD_FROM_PTR(vmemh); size_t len = MEM_lockfree_allocN_len(vmemh); + if (vmemh == NULL) { + print_error("Attempt to free NULL pointer\n"); +#ifdef WITH_ASSERT_ABORT + abort(); +#endif + return; + } + atomic_sub_u(&totblock, 1); atomic_sub_z(&mem_in_use, len); @@ -470,7 +478,7 @@ unsigned int MEM_lockfree_get_memory_blocks_in_use(void) /* dummy */ void MEM_lockfree_reset_peak_memory(void) { - peak_mem = 0; + peak_mem = mem_in_use; } size_t MEM_lockfree_get_peak_memory(void) |