summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2015-11-11 12:06:38 +0800
committerXinchen Hui <laruence@gmail.com>2015-11-11 12:06:38 +0800
commitc3260b66c9723d63c75f4f63aa2b9f52c6915d6f (patch)
tree9600f0a6b8fcc187c6144e3e53cc4686bde550bf /ext
parentd6c527830e57c85356916e2efc2e6f120d493051 (diff)
downloadphp-git-c3260b66c9723d63c75f4f63aa2b9f52c6915d6f.tar.gz
Revert "Fixed bug #70249 (Segmentation fault while running PHPUnit tests on phpBB 3.2-dev)"
This reverts commit d6c527830e57c85356916e2efc2e6f120d493051.
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/basic_functions.c13
-rw-r--r--ext/standard/tests/general_functions/bug70249.phpt28
2 files changed, 3 insertions, 38 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 1c5f3fe988..8da45c4287 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -5002,16 +5002,9 @@ PHPAPI void php_call_shutdown_functions(void) /* {{{ */
{
if (BG(user_shutdown_function_names)) {
zend_try {
- zval *entry;
- for (zend_hash_internal_pointer_reset(BG(user_shutdown_function_names));
- zend_hash_has_more_elements(BG(user_shutdown_function_names)) == SUCCESS;
- zend_hash_move_forward(BG(user_shutdown_function_names))) {
- if ((entry = zend_hash_get_current_data(BG(user_shutdown_function_names))) == NULL) {
- continue;
- }
- user_shutdown_function_call(entry);
- }
- } zend_end_try();
+ zend_hash_apply(BG(user_shutdown_function_names), user_shutdown_function_call);
+ }
+ zend_end_try();
php_free_shutdown_functions();
}
}
diff --git a/ext/standard/tests/general_functions/bug70249.phpt b/ext/standard/tests/general_functions/bug70249.phpt
deleted file mode 100644
index aed8dccee3..0000000000
--- a/ext/standard/tests/general_functions/bug70249.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-Bug #70249 (Segmentation fault while running PHPUnit tests on phpBB 3.2-dev)
---FILE--
-<?php
-
-class Logger {
- public function __construct() {
- register_shutdown_function(function () {
- // make regular flush before other shutdown functions, which allows session data collection and so on
- $this->flush();
- // make sure log entries written by shutdown functions are also flushed
- // ensure "flush()" is called last when there are multiple shutdown functions
- register_shutdown_function([$this, 'flush'], true);
- });
- }
-
- public function flush($final = false) {
- return 1;
- }
-}
-
-for ($i = 0; $i < 200; $i++) {
- $a = new Logger();
-}
-?>
-okey
---EXPECT--
-okey