diff options
author | Dmitry Stogov <dmitry@php.net> | 2010-08-11 08:34:54 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2010-08-11 08:34:54 +0000 |
commit | 7566ff38a1af69ad4463764861a99be864b63df0 (patch) | |
tree | e64dd8e6b76a27f648252a265e7176fdc58d2bdb | |
parent | c10bb27254ed67a30e358eb673936de66ee0543f (diff) | |
download | php-git-7566ff38a1af69ad4463764861a99be864b63df0.tar.gz |
Fixed support for static properties of internal classes
-rw-r--r-- | Zend/zend_API.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index cfef4fa14b..11dd8c701e 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1044,12 +1044,15 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC p = &class_type->default_static_members_table[i]; if (Z_ISREF_PP(p) && class_type->parent && - class_type->parent->default_static_members_count < i && - *p == class_type->parent->default_static_members_table[i] + i < class_type->parent->default_static_members_count && + *p == class_type->parent->default_static_members_table[i] && + CE_STATIC_MEMBERS(class_type->parent)[i] ) { - Z_ADDREF_PP(p); - Z_SET_ISREF_PP(p); - CE_STATIC_MEMBERS(class_type)[i] = *p; + zval *q = CE_STATIC_MEMBERS(class_type->parent)[i]; + + Z_ADDREF_P(q); + Z_SET_ISREF_P(q); + CE_STATIC_MEMBERS(class_type)[i] = q; } else { zval *r; |