diff options
author | Zeev Suraski <zeev@php.net> | 2004-02-11 10:51:05 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2004-02-11 10:51:05 +0000 |
commit | c01c44c2e2f19ec34ae7e5956c73002dace8cc50 (patch) | |
tree | 7ccc35c1544247ebfeb086d7dbf851afbf969069 | |
parent | 0f3106ad17d103145df9a460cdd2c255e7b6f1f7 (diff) | |
download | php-git-c01c44c2e2f19ec34ae7e5956c73002dace8cc50.tar.gz |
Fix bug #26802 (the right aspects of it found by Marcus, anyway :)
-rw-r--r-- | Zend/zend_compile.c | 6 |
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!"); } |