diff options
| author | Nikita Popov <nikic@php.net> | 2016-02-21 12:59:57 +0100 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2016-02-21 13:00:37 +0100 |
| commit | 0bd64b50b88d243cf337e0c5dbea20e4ba809117 (patch) | |
| tree | 209c2b76dc406df79ad4149cde6224798cd79d83 /Zend/zend_API.c | |
| parent | 2ecc0c10850f087727932348e786ec09e4825109 (diff) | |
| download | php-git-0bd64b50b88d243cf337e0c5dbea20e4ba809117.tar.gz | |
Fixed bug #71617
Diffstat (limited to 'Zend/zend_API.c')
| -rw-r--r-- | Zend/zend_API.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 2238bcb5e0..a7d19f9892 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1226,8 +1226,15 @@ ZEND_API void object_properties_load(zend_object *object, HashTable *properties) size_t prop_name_len; if (zend_unmangle_property_name_ex(key, &class_name, &prop_name, &prop_name_len) == SUCCESS) { zend_string *pname = zend_string_init(prop_name, prop_name_len, 0); + zend_class_entry *prev_scope = EG(scope); + if (class_name && class_name[0] != '*') { + zend_string *cname = zend_string_init(class_name, strlen(class_name), 0); + EG(scope) = zend_lookup_class(cname); + zend_string_release(cname); + } property_info = zend_get_property_info(object->ce, pname, 1); zend_string_release(pname); + EG(scope) = prev_scope; } else { property_info = ZEND_WRONG_PROPERTY_INFO; } |
