]> granicus.if.org Git - php/commitdiff
Add ability to disable JIT for a particular auto global
authorZeev Suraski <zeev@php.net>
Tue, 16 Mar 2004 19:46:04 +0000 (19:46 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 16 Mar 2004 19:46:04 +0000 (19:46 +0000)
Zend/zend_compile.c
Zend/zend_compile.h

index b3d56aafec0be662c021ebdabd68daea58720d54..c92b78fbdb5b36915f1f151d3aac447409ea5fb1 100644 (file)
@@ -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));
index 9f09c79b1b40761096cf9bbd2d8f67a7e9602a79..3d4d7e28e315b33e0977dd7f2084997be0b2a6ef 100644 (file)
@@ -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);