From: Moriyoshi Koizumi Date: Thu, 4 Mar 2004 22:50:55 +0000 (+0000) Subject: - Fix memleak when scanner is called from within tokenizer extension. X-Git-Tag: RELEASE_0_2_0~50 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0aabb79b23f0153ad87b232970601bf4daacefa;p=php - Fix memleak when scanner is called from within tokenizer extension. # (only happens with zend multibyte feature enabled) --- diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 7d3467010e..2f51f756b0 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -195,6 +195,14 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC) zend_restore_compiled_filename(lex_state->filename TSRMLS_CC); #ifdef ZEND_MULTIBYTE + if (SCNG(script_org)) { + efree(SCNG(script_org)); + SCNG(script_org) = NULL; + } + if (SCNG(script_filtered)) { + efree(SCNG(script_filtered)); + SCNG(script_filtered) = NULL; + } SCNG(script_org) = lex_state->script_org; SCNG(script_org_size) = lex_state->script_org_size; SCNG(script_filtered) = lex_state->script_filtered; @@ -371,17 +379,6 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR zend_bailout(); } compilation_successful=1; - -#ifdef ZEND_MULTIBYTE - if (SCNG(script_org)) { - efree(SCNG(script_org)); - SCNG(script_org) = NULL; - } - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } -#endif /* ZEND_MULTIBYTE */ } if (retval) {