Permalink
Browse files

Merge branch 'PHP-5.3' into PHP-5.4

  • Loading branch information...
2 parents 7751a68 + df3b9a1 commit 070239a19447c2737bc4fddbcce00c2e16f362d0 @laruence laruence committed Nov 27, 2012
Showing with 45 additions and 1 deletion.
  1. +3 −0 NEWS
  2. +1 −1 ext/reflection/php_reflection.c
  3. +41 −0 ext/reflection/tests/bug63614.phpt
View
3 NEWS
@@ -23,6 +23,9 @@ PHP NEWS
- Apache2 Handler SAPI:
. Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)
+- Reflection:
+ . Fixed Bug #63614 (Fatal error on Reflection). (Laruence)
+
22 Nov 2012, PHP 5.4.9
- Core:
@@ -1884,7 +1884,7 @@ ZEND_METHOD(reflection_function, getStaticVariables)
/* Return an empty array in case no static variables exist */
array_init(return_value);
if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.static_variables != NULL) {
- zend_hash_apply_with_argument(fptr->op_array.static_variables, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
+ zend_hash_apply_with_argument(fptr->op_array.static_variables, (apply_func_arg_t) zval_update_constant_inline_change, fptr->common.scope TSRMLS_CC);
zend_hash_copy(Z_ARRVAL_P(return_value), fptr->op_array.static_variables, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *));
}
}
@@ -0,0 +1,41 @@
+--TEST--
+Bug #63614 (Fatal error on Reflection)
+--FILE--
+<?php
+function dummy() {
+ static $a = array();
+}
+
+class Test
+{
+ const A = 0;
+
+ public function func()
+ {
+ static $a = array(
+ self::A => 'a'
+ );
+ }
+}
+
+$reflect = new ReflectionFunction("dummy");
+print_r($reflect->getStaticVariables());
+$reflect = new ReflectionMethod('Test', 'func');
+print_r($reflect->getStaticVariables());
+?>
+--EXPECT--
+Array
+(
+ [a] => Array
+ (
+ )
+
+)
+Array
+(
+ [a] => Array
+ (
+ [0] => a
+ )
+
+)

0 comments on commit 070239a

Please sign in to comment.