From ed06a70f7ff56a2177defcff55473460d060f9af Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Sat, 5 Jun 1999 20:00:00 +0000 Subject: [PATCH] * Centralized shutdown * Change shutdown order again --- Zend/zend.c | 16 ++++++++++++++++ Zend/zend.h | 1 + Zend/zend_compile.c | 1 - Zend/zend_compile.h | 3 +++ 4 files changed, 20 insertions(+), 1 deletion(-) 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); -- 2.50.1