diff options
author | Julien Pauli <jpauli@php.net> | 2015-07-06 15:46:48 +0200 |
---|---|---|
committer | Julien Pauli <jpauli@php.net> | 2015-07-07 14:56:05 +0200 |
commit | c22da81b71abe8c41a94fdea4e95a2bca8ec926d (patch) | |
tree | 2922ee28cf012cd34c7f82de4c0faa6a095494b0 /Zend/zend_compile.c | |
parent | 022068342b5da0b97be1b5f3bb7b018263bd6437 (diff) | |
download | php-git-c22da81b71abe8c41a94fdea4e95a2bca8ec926d.tar.gz |
Fixed double ZEND_TICKS opcode generation for declare()
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r-- | Zend/zend_compile.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index d2f9fbc8d7..278ac4e02e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -6827,6 +6827,11 @@ void zend_do_extended_fcall_end(TSRMLS_D) /* {{{ */ void zend_do_ticks(TSRMLS_D) /* {{{ */ { + /* This prevents a double TICK generated by the parser statement of "declare()" */ + if (CG(active_op_array)->last && CG(active_op_array)->opcodes[CG(active_op_array)->last - 1].opcode == ZEND_TICKS) { + return; + } + zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); opline->opcode = ZEND_TICKS; |