]> granicus.if.org Git - php/commitdiff
- Fix memleak when scanner is called from within tokenizer extension.
authorMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 4 Mar 2004 22:50:55 +0000 (22:50 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 4 Mar 2004 22:50:55 +0000 (22:50 +0000)
# (only happens with zend multibyte feature enabled)

Zend/zend_language_scanner.l

index 7d3467010ee41615dea5915bb1b1ec1067ba227b..2f51f756b087fb25f723b6b136c23401f44a1a22 100644 (file)
@@ -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) {