Commit: 0ab356c8e59018fbedd0fd6ddfd6a82f4558c9a9 Author: Dmitry Stogov <dmi...@zend.com> Fri, 15 Mar 2013 10:45:49 +0400 Parents: 61ac64b372bdd09144a7c276bb7094478ec3132f Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0ab356c8e59018fbedd0fd6ddfd6a82f4558c9a9 Log: Autogolobal $GLOBALS has to be pinged even if auto_globals_jit=0 Changed paths: M ZendAccelerator.c Diff: diff --git a/ZendAccelerator.c b/ZendAccelerator.c index e6029cf..bb571a4 100644 --- a/ZendAccelerator.c +++ b/ZendAccelerator.c @@ -1154,11 +1154,10 @@ static int zend_accel_get_auto_globals(TSRMLS_D) { int i, ag_size = (sizeof(jit_auto_globals_info) / sizeof(jit_auto_globals_info[0])); int n = 1; - zval **res; int mask = 0; for (i = 0; i < ag_size ; i++) { - if (zend_hash_find(&EG(symbol_table), jit_auto_globals_info[i].name, jit_auto_globals_info[i].len, (void *)&res) == SUCCESS) { + if (zend_hash_exists(&EG(symbol_table), jit_auto_globals_info[i].name, jit_auto_globals_info[i].len)) { mask |= n; } n += n; @@ -1166,6 +1165,16 @@ static int zend_accel_get_auto_globals(TSRMLS_D) return mask; } +#if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO +static int zend_accel_get_auto_globals_no_jit(TSRMLS_D) +{ + if (zend_hash_exists(&EG(symbol_table), jit_auto_globals_info[3].name, jit_auto_globals_info[3].len)) { + return 8; + } + return 0; +} +#endif + static void zend_accel_set_auto_globals(int mask TSRMLS_DC) { int i, ag_size = (sizeof(jit_auto_globals_info) / sizeof(jit_auto_globals_info[0])); @@ -1318,11 +1327,15 @@ static zend_persistent_script *compile_and_cache_file(zend_file_handle *file_han will have to ping the used auto global variables before execution */ #if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO if (PG(auto_globals_jit)) { + new_persistent_script->ping_auto_globals_mask = zend_accel_get_auto_globals(TSRMLS_C); + } else { + new_persistent_script->ping_auto_globals_mask = zend_accel_get_auto_globals_no_jit(TSRMLS_C); + } #else if ((PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays))) { -#endif new_persistent_script->ping_auto_globals_mask = zend_accel_get_auto_globals(TSRMLS_C); - } + } +#endif if (ZCG(accel_directives).validate_timestamps) { /* Obtain the file timestamps, *before* actually compiling them, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php