summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-12-27 13:12:45 +0000
committerAndi Gutmans <andi@php.net>2001-12-27 13:12:45 +0000
commitb3fd2faac06a6f9f216070b00ad46c13309fa6b3 (patch)
tree3f6549b3ef56a1150870b9a3add99a4c05aaa83d /Zend/zend_execute.c
parenta5f7a383bf001d373b8733e76883f8152d3ecc0f (diff)
downloadphp-git-b3fd2faac06a6f9f216070b00ad46c13309fa6b3.tar.gz
- Support parent:: again
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index cf9c4b42e4..70196d7dd4 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1503,7 +1503,16 @@ binary_assign_op_addr: {
} else if (EX(opline)->extended_value == ZEND_FETCH_CLASS_MAIN) {
EX(Ts)[EX(opline)->result.u.var].EA.class_entry = EG(main_class_ptr);
NEXT_OPCODE();
- }
+ } else if (EX(opline)->extended_value == ZEND_FETCH_CLASS_PARENT) {
+ if (!EG(namespace)) {
+ zend_error(E_ERROR, "Cannot fetch parent:: when no class scope is active");
+ }
+ if (!EG(namespace)->parent) {
+ zend_error(E_ERROR, "Cannot fetch parent:: as current class scope has no parent");
+ }
+ EX(Ts)[EX(opline)->result.u.var].EA.class_entry = EG(namespace)->parent;
+ NEXT_OPCODE();
+ }
class_name = get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R);