From d84da590ffea38fb6fc860c38e7c4e8e99d98fdf Mon Sep 17 00:00:00 2001 From: Xuefer Date: Tue, 18 Dec 2012 07:14:03 +0000 Subject: [PATCH] PHP_5_4: fix for ZEND_JMP_SET_VAR git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1208 c26eb9a1-5813-0410-bd6c-c2e55f420ca7 --- ChangeLog | 1 + NEWS | 1 + mod_optimizer/xc_optimizer.c | 3 +++ xcache/xc_utils.c | 6 ++++++ 4 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index 85b1cd6..7a8e9f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,7 @@ ChangeLog * fix random crash when cache is reinitialized yet failed (Thanks to Brad Baker for generating crash dump) * fix locking impl: improve stability on threaded env (Thanks to Mircea Nicolae for reproducing the bug) * diagnosis: undefined variable when ini is not found + * fix ZEND_JMP_SET_VAR 3.0.0 2012-10-29 API Changes diff --git a/NEWS b/NEWS index 3344a03..52df16e 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ ChangeLog * bug fixes * improve compatibility with "the ionCube PHP Loader", Zend Optimizer * improve stability + * improve support for PHP_5_4 * improve stability on threaded env 3.0.0 2012-10-29 diff --git a/mod_optimizer/xc_optimizer.c b/mod_optimizer/xc_optimizer.c index 3ee3edd..8ff15e1 100644 --- a/mod_optimizer/xc_optimizer.c +++ b/mod_optimizer/xc_optimizer.c @@ -183,6 +183,9 @@ static int op_get_flowinfo(op_flowinfo_t *fi, zend_op *opline) /* {{{ */ #ifdef ZEND_JMP_SET case ZEND_JMP_SET: #endif +#ifdef ZEND_JMP_SET_VAR + case ZEND_JMP_SET_VAR: +#endif #ifdef ZEND_JMP_NO_CTOR case ZEND_JMP_NO_CTOR: #endif diff --git a/xcache/xc_utils.c b/xcache/xc_utils.c index fa8af52..68a901e 100644 --- a/xcache/xc_utils.c +++ b/xcache/xc_utils.c @@ -247,6 +247,9 @@ int xc_redo_pass_two(zend_op_array *op_array TSRMLS_DC) /* {{{ */ case ZEND_JMPNZ_EX: #ifdef ZEND_JMP_SET case ZEND_JMP_SET: +#endif +#ifdef ZEND_JMP_SET_VAR + case ZEND_JMP_SET_VAR: #endif assert(Z_OP(opline->op2).opline_num < op_array->last); Z_OP(opline->op2).jmp_addr = op_array->opcodes + Z_OP(opline->op2).opline_num; @@ -356,6 +359,9 @@ int xc_foreach_early_binding_class(zend_op_array *op_array, xc_foreach_early_bin case ZEND_JMPNZ_EX: #ifdef ZEND_JMP_SET case ZEND_JMP_SET: +#endif +#ifdef ZEND_JMP_SET_VAR + case ZEND_JMP_SET_VAR: #endif next = begin + Z_OP(opline->op2).opline_num; break;