summaryrefslogtreecommitdiff
path: root/Zend/zend_constants.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-14 13:24:43 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-14 13:24:43 +0400
commit5dc52e488048d93767b78fe7fce34a6a0febc5e0 (patch)
tree961d10c552ed70292e9823eacfe3e2fc1d666087 /Zend/zend_constants.c
parent4fc3d2d104493e417d2352e4312d97a7d17fc4c5 (diff)
downloadphp-git-5dc52e488048d93767b78fe7fce34a6a0febc5e0.tar.gz
Fixed interface constants inheritance.
Now we use IS_REFERENCE for inhereted class constants. I might miss some edje cases.
Diffstat (limited to 'Zend/zend_constants.c')
-rw-r--r--Zend/zend_constants.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index 8227f185d4..964c7f8165 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -379,6 +379,8 @@ ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result,
if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) {
zend_error(E_ERROR, "Undefined class constant '%s::%s'", class_name->val, constant_name->val);
}
+ } else if (Z_ISREF_P(ret_constant)) {
+ ret_constant = Z_REFVAL_P(ret_constant);
}
} else if (!ce) {
retval = 0;