summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index d6a5f909ed..62d30956fb 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -2643,19 +2643,13 @@ ZEND_METHOD(reflection_class, getStaticProperties)
ulong num_index;
if (zend_hash_get_current_key_ex(CE_STATIC_MEMBERS(ce), &key, &key_len, &num_index, 0, &pos) != FAILURE && key) {
- zval_add_ref(value);
+ char *prop_name, *class_name;
- if (*key == '\0') {
- *key++;
- key_len--;
-
- }
- if (*key == '*' && *(key+1) == '\0') {
- *(key+1) = *key++;
- key_len--;
- }
+ zend_unmangle_property_name(key, key_len-1, &class_name, &prop_name);
+
+ zval_add_ref(value);
- zend_hash_update(Z_ARRVAL_P(return_value), key, key_len, value, sizeof(zval *), NULL);
+ zend_hash_update(Z_ARRVAL_P(return_value), prop_name, strlen(prop_name)+1, value, sizeof(zval *), NULL);
}
zend_hash_move_forward_ex(CE_STATIC_MEMBERS(ce), &pos);
}