diff options
| author | Andi Gutmans <andi@php.net> | 2001-12-27 13:12:45 +0000 |
|---|---|---|
| committer | Andi Gutmans <andi@php.net> | 2001-12-27 13:12:45 +0000 |
| commit | b3fd2faac06a6f9f216070b00ad46c13309fa6b3 (patch) | |
| tree | 3f6549b3ef56a1150870b9a3add99a4c05aaa83d /Zend/zend_execute.c | |
| parent | a5f7a383bf001d373b8733e76883f8152d3ecc0f (diff) | |
| download | php-git-b3fd2faac06a6f9f216070b00ad46c13309fa6b3.tar.gz | |
- Support parent:: again
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 11 |
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); |
