diff options
author | Gustavo André dos Santos Lopes <cataphract@php.net> | 2011-02-03 12:38:25 +0000 |
---|---|---|
committer | Gustavo André dos Santos Lopes <cataphract@php.net> | 2011-02-03 12:38:25 +0000 |
commit | fac1e871713d4117cfb5f108f235f60e313f99da (patch) | |
tree | 99f8762877d792b2d1a4b6509b29d28eace35126 /ext/reflection/php_reflection.c | |
parent | 36d82e8a85cd9310d86dac4e34b928ca329f6859 (diff) | |
download | php-git-fac1e871713d4117cfb5f108f235f60e313f99da.tar.gz |
- Fixed bug #53915: ReflectionClass::getConstant(s) emits fatal error on
constants with self::.
- Reflown some NEWS entries to have lines no longer than 80 chars.
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 4afeef3669..b89d53581d 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -3731,6 +3731,11 @@ ZEND_METHOD(reflection_class, hasConstant) } /* }}} */ +static int _update_constant_ex_cb_wrapper(void *pDest, void *ce TSRMLS_DC) +{ + return zval_update_constant_ex(pDest, (void*)(zend_uintptr_t)1U, ce); +} + /* {{{ proto public array ReflectionClass::getConstants() Returns an associative array containing this class' constants and their values */ ZEND_METHOD(reflection_class, getConstants) @@ -3744,7 +3749,7 @@ ZEND_METHOD(reflection_class, getConstants) } GET_REFLECTION_OBJECT_PTR(ce); array_init(return_value); - zend_hash_apply_with_argument(&ce->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC); + zend_hash_apply_with_argument(&ce->constants_table, _update_constant_ex_cb_wrapper, ce TSRMLS_CC); zend_hash_copy(Z_ARRVAL_P(return_value), &ce->constants_table, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *)); } /* }}} */ @@ -3765,7 +3770,7 @@ ZEND_METHOD(reflection_class, getConstant) } GET_REFLECTION_OBJECT_PTR(ce); - zend_hash_apply_with_argument(&ce->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC); + zend_hash_apply_with_argument(&ce->constants_table, _update_constant_ex_cb_wrapper, ce TSRMLS_CC); if (zend_hash_find(&ce->constants_table, name, name_len + 1, (void **) &value) == FAILURE) { RETURN_FALSE; } |