diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2013-03-28 00:03:40 +0400 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2013-03-28 00:03:40 +0400 |
| commit | 85e5e60777209c13c71785da31af86a5e0a98d92 (patch) | |
| tree | 4bf05ea80f01ec86730fa8cfd89626562f81c461 /Zend/zend_compile.c | |
| parent | 1182a3356c6c1989a686aab5258e1d47c56b2955 (diff) | |
| download | php-git-85e5e60777209c13c71785da31af86a5e0a98d92.tar.gz | |
Fixed bug #64529 (Ran out of opcode space)
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 766a2de01a..82275ce624 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1798,7 +1798,7 @@ void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) /* zend_do_return(NULL, 0 TSRMLS_CC); pass_two(CG(active_op_array) TSRMLS_CC); - zend_release_labels(TSRMLS_C); + zend_release_labels(0 TSRMLS_CC); if (CG(active_class_entry)) { zend_check_magic_method_implementation(CG(active_class_entry), (zend_function*)CG(active_op_array), E_COMPILE_ERROR TSRMLS_CC); @@ -2320,13 +2320,14 @@ void zend_do_goto(const znode *label TSRMLS_DC) /* {{{ */ } /* }}} */ -void zend_release_labels(TSRMLS_D) /* {{{ */ +void zend_release_labels(int temporary TSRMLS_DC) /* {{{ */ { if (CG(context).labels) { zend_hash_destroy(CG(context).labels); FREE_HASHTABLE(CG(context).labels); + CG(context).labels = NULL; } - if (!zend_stack_is_empty(&CG(context_stack))) { + if (!temporary && !zend_stack_is_empty(&CG(context_stack))) { zend_compiler_context *ctx; zend_stack_top(&CG(context_stack), (void**)&ctx); |
