diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 47e9967a1e2..0d3b3522383 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2276,6 +2276,7 @@ void zend_mm_shutdown(zend_mm_heap *heap, bool full, bool silent) } #if ZEND_MM_STAT heap->size = 0; + heap->real_size = 0; #endif } @@ -2850,6 +2851,7 @@ static void *tracked_malloc(size_t size) tracked_add(heap, ptr, size); #if ZEND_MM_STAT heap->size += size; + heap->real_size = heap->size; #endif return ptr; } @@ -2863,6 +2865,7 @@ static void tracked_free(void *ptr) { zval *size_zv = tracked_get_size_zv(heap, ptr); #if ZEND_MM_STAT heap->size -= Z_LVAL_P(size_zv); + heap->real_size = heap->size; #endif zend_hash_del_bucket(heap->tracked_allocs, (Bucket *) size_zv); free(ptr); @@ -2890,6 +2893,7 @@ static void *tracked_realloc(void *ptr, size_t new_size) { tracked_add(heap, ptr, new_size); #if ZEND_MM_STAT heap->size += new_size - old_size; + heap->real_size = heap->size; #endif return ptr; }