summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2004-02-11 10:51:05 +0000
committerZeev Suraski <zeev@php.net>2004-02-11 10:51:05 +0000
commitc01c44c2e2f19ec34ae7e5956c73002dace8cc50 (patch)
tree7ccc35c1544247ebfeb086d7dbf851afbf969069
parent0f3106ad17d103145df9a460cdd2c255e7b6f1f7 (diff)
downloadphp-git-c01c44c2e2f19ec34ae7e5956c73002dace8cc50.tar.gz
Fix bug #26802 (the right aspects of it found by Marcus, anyway :)
-rw-r--r--Zend/zend_compile.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 2f6f89fc19..f3a72527e6 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1326,11 +1326,15 @@ void zend_do_begin_class_member_function_call(TSRMLS_D)
} else {
zend_lowercase_znode_if_const(&last_op->op2);
}
- } else { /* indirect method call */
+ } else if (last_op->opcode == ZEND_FETCH_R) { /* indirect method call */
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+
+ last_op->op2.u.EA.type = ZEND_FETCH_LOCAL;
opline->opcode = ZEND_INIT_STATIC_METHOD_CALL;
opline->op1 = last_op->op2;
opline->op2 = last_op->result;
+ } else {
+ zend_error(E_COMPILE_ERROR, "Internal compiler error - please report!");
}