summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-02-21 13:01:28 +0100
committerNikita Popov <nikic@php.net>2016-02-21 13:01:28 +0100
commit37d1bbe456cb3995bfc831680c3e3439124864ec (patch)
tree3f69710bccc2be4aaf786a9485c44e46f43e089e /Zend/zend_API.c
parent7a15656b5c3bc04d83c9da05419da8318a15abad (diff)
parent0bd64b50b88d243cf337e0c5dbea20e4ba809117 (diff)
downloadphp-git-37d1bbe456cb3995bfc831680c3e3439124864ec.tar.gz
Merge branch 'PHP-7.0'
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index d87ceb9c53..e9cf134ede 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1229,8 +1229,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;
}