@@ -666,6 +666,15 @@ void * zend_test_custom_realloc(void * ptr, size_t len)
666666 return _zend_mm_realloc (ZT_G (zend_orig_heap ), ptr , len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC );
667667}
668668
669+ static void zend_test_reset_heap (zend_zend_test_globals * zend_test_globals )
670+ {
671+ if (zend_test_globals -> zend_test_heap ) {
672+ free (zend_test_globals -> zend_test_heap );
673+ zend_test_globals -> zend_test_heap = NULL ;
674+ zend_mm_set_heap (zend_test_globals -> zend_orig_heap );
675+ }
676+ }
677+
669678static PHP_INI_MH (OnUpdateZendTestObserveOplineInZendMM )
670679{
671680 if (new_value == NULL ) {
@@ -687,10 +696,8 @@ static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
687696 );
688697 ZT_G (zend_orig_heap ) = zend_mm_get_heap ();
689698 zend_mm_set_heap (ZT_G (zend_test_heap ));
690- } else if (ZT_G (zend_test_heap )) {
691- free (ZT_G (zend_test_heap ));
692- ZT_G (zend_test_heap ) = NULL ;
693- zend_mm_set_heap (ZT_G (zend_orig_heap ));
699+ } else {
700+ zend_test_reset_heap (ZEND_MODULE_GLOBALS_BULK (zend_test ));
694701 }
695702 return OnUpdateBool (entry , new_value , mh_arg1 , mh_arg2 , mh_arg3 , stage );
696703}
@@ -1339,6 +1346,7 @@ static PHP_GINIT_FUNCTION(zend_test)
13391346static PHP_GSHUTDOWN_FUNCTION (zend_test )
13401347{
13411348 zend_test_observer_gshutdown (zend_test_globals );
1349+ zend_test_reset_heap (zend_test_globals );
13421350}
13431351
13441352PHP_MINFO_FUNCTION (zend_test )
0 commit comments