]> granicus.if.org Git - php/commitdiff
* Get rid of the memory leak messages in case of fatal errors or exit()
authorZeev Suraski <zeev@php.net>
Tue, 27 Apr 1999 10:00:54 +0000 (10:00 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 27 Apr 1999 10:00:54 +0000 (10:00 +0000)
* .dsp fixes
* Minor fixes

main/configuration-parser.y
main/configuration-scanner.l
main/main.c
main/php_globals.h
php4dll.dsp
php4dllts.dsp

index d5ca60105106f62f366f8f8e8a4bf344f3c1bd17..a2ea934bb16924ae9765032046a54db99212e707 100644 (file)
@@ -348,6 +348,8 @@ static void convert_browscap_pattern(pval *pattern)
 %token EXTENSION
 %token T_ZEND_EXTENSION
 %token T_ZEND_EXTENSION_TS
+%token T_ZEND_EXTENSION_DEBUG
+%token T_ZEND_EXTENSION_DEBUG_TS
 
 %%
 
@@ -380,13 +382,25 @@ statement:
                        php3_dl(&$3,MODULE_PERSISTENT,&dummy);
                }
        |       T_ZEND_EXTENSION '=' string {
-#ifndef ZTS
+#if !defined(ZTS) && !defined(ZEND_DEBUG)
                        zend_load_extension($3.value.str.val);
 #endif
                        free($3.value.str.val);
                }
        |       T_ZEND_EXTENSION_TS '=' string { 
-#ifdef ZTS
+#if defined(ZTS) && !defined(ZEND_DEBUG)
+                       zend_load_extension($3.value.str.val);
+#endif
+                       free($3.value.str.val);
+               }
+       |       T_ZEND_EXTENSION_DEBUG '=' string { 
+#if !defined(ZTS) && defined(ZEND_DEBUG)
+                       zend_load_extension($3.value.str.val);
+#endif
+                       free($3.value.str.val);
+               }
+       |       T_ZEND_EXTENSION_DEBUG_TS '=' string { 
+#if defined(ZTS) && defined(ZEND_DEBUG)
                        zend_load_extension($3.value.str.val);
 #endif
                        free($3.value.str.val);
index 709fbbbe64f8ac482173bf898d68a679cc8dca99..e72a1c6ee93f2d22aa526ed1ddca39170cb25b73 100644 (file)
@@ -64,6 +64,17 @@ void init_cfg_scanner()
        return T_ZEND_EXTENSION_TS;
 }
 
+
+<INITIAL>"zend_extension_debug" {
+       return T_ZEND_EXTENSION_DEBUG;
+}
+
+
+<INITIAL>"zend_extension_debug_ts" {
+       return T_ZEND_EXTENSION_DEBUG_TS;
+}
+
+
 <INITIAL>[ ]*("true"|"on"|"yes")[ ]* {
        cfglval->value.str.val = php3_strndup("1",1);
        cfglval->value.str.len = 1;
index 549a9da0c9669669111c5f3301506afe52e2ad85..f2c4e589b0f45cda54000363aa8199a55b16e7a4 100644 (file)
@@ -597,8 +597,10 @@ static void php_message_handler_for_zend(long message, void *data)
 
 
 
-int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
+int php_request_startup(CLS_D ELS_DC PLS_DC)
 {
+       PG(unclean_shutdown) = 0;
+
        zend_output_startup();
 
        php3_set_timeout(PG(max_execution_time));
@@ -629,7 +631,6 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
        
        init_compiler(CLS_C ELS_CC);
        init_executor(CLS_C ELS_CC);
-
        startup_scanner(CLS_C);
 
 
@@ -659,6 +660,7 @@ void php_request_shutdown(void *dummy)
 #endif
        CLS_FETCH();
        ELS_FETCH();
+       PLS_FETCH();
 
        php3_header();
        zend_end_ob_buffering(1);
@@ -673,7 +675,7 @@ void php_request_shutdown(void *dummy)
        shutdown_executor(ELS_C);
 
        php3_destroy_request_info(NULL);
-       shutdown_memory_manager(0, 0);
+       shutdown_memory_manager(PG(unclean_shutdown), 0);
        php3_unset_timeout();
 
 
@@ -1130,6 +1132,7 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_
        }
 
        if (setjmp(EG(bailout))!=0) {
+               PG(unclean_shutdown) = 1;
                return;
        }
        _php3_hash_environment(PLS_C);
@@ -1156,6 +1159,8 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_
        if (EG(main_op_array)) {
                EG(active_op_array) = EG(main_op_array);
                zend_execute(EG(main_op_array) ELS_CC);
+       } else {
+               PG(unclean_shutdown) = 1;
        }
 }
 
index ce5405c930e4e318092602f22e4dce45602bc4c6..48ad5441f7b89883cda7df304c699e94f9523357 100644 (file)
@@ -65,6 +65,7 @@ struct _php_core_globals {
     long y2k_compliance;
 
        unsigned char header_is_being_sent;
+       unsigned char unclean_shutdown;
 };
 
 
index d8d27a8e9cadf259fb404288e9fdbc387d310f4f..2671690df21d27456213fc531215fe100f996480 100644 (file)
@@ -43,7 +43,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0\r
 # PROP Target_Dir ""\r
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "..\libzend" /I "." /I "regex\\" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c\r
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\libzend" /I "." /I "regex" /I "..\bindlib_w32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c\r
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
 # ADD BASE RSC /l 0x40d /d "_DEBUG"\r
@@ -69,7 +69,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0\r
 # PROP Target_Dir ""\r
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "include" /I "..\libzend" /I "." /I "regex\\" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /c\r
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\libzend" /I "." /I "regex" /I "..\bindlib_w32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /c\r
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
 # ADD BASE RSC /l 0x40d /d "NDEBUG"\r
index 8c9da25a1c355e0257ef0ac117ef091dae051b5d..4a946e0de59024c8418eae646d0c5d8637da7249 100644 (file)
@@ -43,7 +43,7 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0\r
 # PROP Target_Dir ""\r
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "include" /I "..\libzend" /I "." /I "regex\\" /I "..\tsrm" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "WIN32" /D "_MBCS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /FR /YX /FD /GZ /c\r
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\libzend" /I "." /I "regex\\" /I "..\tsrm" /I "..\bindlib_w32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "WIN32" /D "_MBCS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /FR /YX /FD /GZ /c\r
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
 # ADD BASE RSC /l 0x40d /d "_DEBUG"\r
@@ -69,7 +69,7 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0\r
 # PROP Target_Dir ""\r
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "include" /I "..\libzend" /I "." /I "regex\\" /I "..\tsrm" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /c\r
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\libzend" /I "." /I "regex\\" /I "..\tsrm" /I "..\bindlib_w32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PHP4DLLTS_EXPORTS" /D "MSVC5" /D "PHP_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "TSRM_EXPORTS" /D "SAPI_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /c\r
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
 # ADD BASE RSC /l 0x40d /d "NDEBUG"\r