From 5b1a6f7be03ad76ba2de4394c822c0767b366960 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Thu, 3 Jul 2003 14:06:51 +0000 Subject: [PATCH] Accessing globals from a destructor causes memory corruption --- tests/classes/destructor_and_globals.phpt | 56 +++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 tests/classes/destructor_and_globals.phpt diff --git a/tests/classes/destructor_and_globals.phpt b/tests/classes/destructor_and_globals.phpt new file mode 100755 index 0000000000..9caf0f1026 --- /dev/null +++ b/tests/classes/destructor_and_globals.phpt @@ -0,0 +1,56 @@ +--TEST-- +ZE2 accessing globals from destructor in shutdown +--FILE-- +id = $test_num++; + } + + public function Show() { + echo 'Id: '.$this->id."\n"; + } + + // try protected here + public function __destruct() { + global $test_cnt; + $test_cnt--; + } + + static public function destroy(&$obj) { + $obj = NULL; + } +} +Show(); +$obj1 = new counter; +$obj1->Show(); +Show(); +$obj2 = new counter; +$obj2->Show(); +Show(); +counter::destroy($obj1); +Show(); +// or uncomment this line and it works +//counter::destroy($obj2); +echo "Done\n"; +?> +--EXPECT-- +Count: 0 +Id: 0 +Count: 1 +Id: 1 +Count: 2 +Count: 1 +Done -- 2.50.1