|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2013, PHP 5.4.14
- Core
+ . Fixed bug #64529 (Ran out of opcode space). (Dmitry)
. Fixed bug #64515 (Memoryleak when using the same variablename 2times in
function declaration). (Laruence)
. Fixed bug #64432 (more empty delimiter warning in strX methods). (Laruence)
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);
}
/* }}} */
-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);
void zend_do_label(znode *label TSRMLS_DC);
void zend_do_goto(const znode *label TSRMLS_DC);
void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 TSRMLS_DC);
-void zend_release_labels(TSRMLS_D);
+void zend_release_labels(int temporary TSRMLS_DC);
ZEND_API void function_add_ref(zend_function *function);
opline++;
}
- zend_release_labels(TSRMLS_C);
+ zend_release_labels(1 TSRMLS_CC);
EG(return_value_ptr_ptr) = NULL;
EG(active_op_array) = CG(active_op_array);
-/* Generated by re2c 0.13.5 on Wed Nov 14 17:46:56 2012 */
+/* Generated by re2c 0.13.5 on Wed Mar 27 23:52:29 2013 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
CG(active_op_array) = original_active_op_array;
if (compilation_successful) {
pass_two(op_array TSRMLS_CC);
- zend_release_labels(TSRMLS_C);
+ zend_release_labels(0 TSRMLS_CC);
} else {
efree(op_array);
retval = NULL;
zend_do_return(NULL, 0 TSRMLS_CC);
CG(active_op_array) = original_active_op_array;
pass_two(op_array TSRMLS_CC);
- zend_release_labels(TSRMLS_C);
+ zend_release_labels(0 TSRMLS_CC);
retval = op_array;
}
}
CG(active_op_array) = original_active_op_array;
if (compilation_successful) {
pass_two(op_array TSRMLS_CC);
- zend_release_labels(TSRMLS_C);
+ zend_release_labels(0 TSRMLS_CC);
} else {
efree(op_array);
retval = NULL;
zend_do_return(NULL, 0 TSRMLS_CC);
CG(active_op_array) = original_active_op_array;
pass_two(op_array TSRMLS_CC);
- zend_release_labels(TSRMLS_C);
+ zend_release_labels(0 TSRMLS_CC);
retval = op_array;
}
}
-/* Generated by re2c 0.13.5 on Wed Nov 14 17:46:56 2012 */
+/* Generated by re2c 0.13.5 on Wed Mar 27 23:52:29 2013 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {