From e2a5ebf5975c5c0af51eff04fb9df585e5f9d6be Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Tue, 16 Mar 2004 19:46:04 +0000 Subject: [PATCH] Add ability to disable JIT for a particular auto global --- Zend/zend_compile.c | 13 ++++++++++++- Zend/zend_compile.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index b3d56aafec..c92b78fbdb 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -98,6 +98,18 @@ int zend_auto_global_arm(zend_auto_global *auto_global TSRMLS_DC) } +int zend_auto_global_disable_jit(char *varname, zend_uint varname_length TSRMLS_DC) +{ + zend_auto_global *auto_global; + + if (zend_hash_find(CG(auto_globals), varname, varname_length+1, (void **) &auto_global)==FAILURE) { + return FAILURE; + } + auto_global->armed = 0; + return SUCCESS; +} + + static void init_compiler_declarables(TSRMLS_D) { CG(declarables).ticks.type = IS_LONG; @@ -105,7 +117,6 @@ static void init_compiler_declarables(TSRMLS_D) } - void zend_init_compiler_data_structures(TSRMLS_D) { zend_stack_init(&CG(bp_stack)); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 9f09c79b1b..3d4d7e28e3 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -529,6 +529,7 @@ typedef struct _zend_auto_global { void zend_auto_global_dtor(zend_auto_global *auto_global); ZEND_API int zend_register_auto_global(char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC); ZEND_API zend_bool zend_is_auto_global(char *name, uint name_len TSRMLS_DC); +ZEND_API int zend_auto_global_disable_jit(char *varname, zend_uint varname_length TSRMLS_DC); int zendlex(znode *zendlval TSRMLS_DC); -- 2.50.1