@@ -697,6 +697,15 @@ void * zend_test_custom_realloc(void * ptr, size_t len ZEND_FILE_LINE_DC ZEND_FI
697697 return _zend_mm_realloc (ZT_G (zend_orig_heap ), ptr , len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC );
698698}
699699
700+ static void zend_test_reset_heap (zend_zend_test_globals * zend_test_globals )
701+ {
702+ if (zend_test_globals -> zend_test_heap ) {
703+ free (zend_test_globals -> zend_test_heap );
704+ zend_test_globals -> zend_test_heap = NULL ;
705+ zend_mm_set_heap (zend_test_globals -> zend_orig_heap );
706+ }
707+ }
708+
700709static PHP_INI_MH (OnUpdateZendTestObserveOplineInZendMM )
701710{
702711 if (new_value == NULL ) {
@@ -718,10 +727,8 @@ static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
718727 );
719728 ZT_G (zend_orig_heap ) = zend_mm_get_heap ();
720729 zend_mm_set_heap (ZT_G (zend_test_heap ));
721- } else if (ZT_G (zend_test_heap )) {
722- free (ZT_G (zend_test_heap ));
723- ZT_G (zend_test_heap ) = NULL ;
724- zend_mm_set_heap (ZT_G (zend_orig_heap ));
730+ } else {
731+ zend_test_reset_heap (ZEND_MODULE_GLOBALS_BULK (zend_test ));
725732 }
726733 return OnUpdateBool (entry , new_value , mh_arg1 , mh_arg2 , mh_arg3 , stage );
727734}
@@ -1387,6 +1394,7 @@ static PHP_GINIT_FUNCTION(zend_test)
13871394static PHP_GSHUTDOWN_FUNCTION (zend_test )
13881395{
13891396 zend_test_observer_gshutdown (zend_test_globals );
1397+ zend_test_reset_heap (zend_test_globals );
13901398}
13911399
13921400PHP_MINFO_FUNCTION (zend_test )
0 commit comments