From: Zeev Suraski Date: Sat, 5 Jun 1999 20:00:00 +0000 (+0000) Subject: * Centralized shutdown X-Git-Tag: BEFORE_REMOVING_GC_STEP1~197 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ed06a70f7ff56a2177defcff55473460d060f9af;p=php * Centralized shutdown * Change shutdown order again --- diff --git a/Zend/zend.c b/Zend/zend.c index 7e5cd91775..ef9a39451b 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -358,3 +358,19 @@ ZEND_API char *get_zend_version() { return zend_version_info; } + + +void zend_activate(CLS_D ELS_DC) +{ + init_compiler(CLS_C ELS_CC); + init_executor(CLS_C ELS_CC); + startup_scanner(CLS_C); +} + +void zend_deactivate(CLS_D ELS_DC) +{ + zend_hash_apply(&module_registry, (int (*)(void *)) module_registry_cleanup); + shutdown_scanner(CLS_C); + shutdown_executor(ELS_C); + shutdown_compiler(CLS_C); +} diff --git a/Zend/zend.h b/Zend/zend.h index d4745ce7c9..ece884f84a 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -173,6 +173,7 @@ typedef struct _zend_utility_values { int zend_startup(zend_utility_functions *utility_functions, char **extensions); void zend_shutdown(); + void zend_set_utility_values(zend_utility_values *utility_values); BEGIN_EXTERN_C() ZEND_API void zend_bailout(); diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ae1e6d4d52..334213b782 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -73,7 +73,6 @@ void init_compiler(CLS_D ELS_DC) void shutdown_compiler(CLS_D) { - zend_hash_apply(&module_registry, (int (*)(void *)) module_registry_cleanup); zend_stack_destroy(&CG(bp_stack)); zend_stack_destroy(&CG(function_call_stack)); zend_stack_destroy(&CG(switch_cond_stack)); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 7bc6193361..75a3f1ce37 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -189,6 +189,9 @@ void shutdown_compiler(CLS_D); BEGIN_EXTERN_C() extern ZEND_API zend_op_array *(*zend_compile_files)(int mark_as_ref CLS_DC, int file_count, ...); +void zend_activate(CLS_D ELS_DC); +void zend_deactivate(CLS_D ELS_DC); + int lex_scan(zval *zendlval CLS_DC); void startup_scanner(CLS_D); void shutdown_scanner(CLS_D);