@@ -703,6 +703,15 @@ void * zend_test_custom_realloc(void * ptr, size_t len ZEND_FILE_LINE_DC ZEND_FI
703703 return _zend_mm_realloc (ZT_G (zend_orig_heap ), ptr , len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC );
704704}
705705
706+ static void zend_test_reset_heap (zend_zend_test_globals * zend_test_globals )
707+ {
708+ if (zend_test_globals -> zend_test_heap ) {
709+ free (zend_test_globals -> zend_test_heap );
710+ zend_test_globals -> zend_test_heap = NULL ;
711+ zend_mm_set_heap (zend_test_globals -> zend_orig_heap );
712+ }
713+ }
714+
706715static PHP_INI_MH (OnUpdateZendTestObserveOplineInZendMM )
707716{
708717 if (new_value == NULL ) {
@@ -724,10 +733,8 @@ static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
724733 );
725734 ZT_G (zend_orig_heap ) = zend_mm_get_heap ();
726735 zend_mm_set_heap (ZT_G (zend_test_heap ));
727- } else if (ZT_G (zend_test_heap )) {
728- free (ZT_G (zend_test_heap ));
729- ZT_G (zend_test_heap ) = NULL ;
730- zend_mm_set_heap (ZT_G (zend_orig_heap ));
736+ } else {
737+ zend_test_reset_heap (ZEND_MODULE_GLOBALS_BULK (zend_test ));
731738 }
732739 return OnUpdateBool (entry , new_value , mh_arg1 , mh_arg2 , mh_arg3 , stage );
733740}
@@ -1397,6 +1404,7 @@ static PHP_GINIT_FUNCTION(zend_test)
13971404static PHP_GSHUTDOWN_FUNCTION (zend_test )
13981405{
13991406 zend_test_observer_gshutdown (zend_test_globals );
1407+ zend_test_reset_heap (zend_test_globals );
14001408}
14011409
14021410PHP_MINFO_FUNCTION (zend_test )
0 commit comments