From: Dmitry Stogov Date: Mon, 5 Mar 2018 13:21:20 +0000 (+0300) Subject: Merge branch 'PHP-7.2' X-Git-Tag: php-7.3.0alpha1~261 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f32b7dbc43d91cd905269848107bdd625cc48f97;p=php Merge branch 'PHP-7.2' * PHP-7.2: Fixed "opcache.file_cache_fallback" mode. --- f32b7dbc43d91cd905269848107bdd625cc48f97 diff --cc ext/opcache/ZendAccelerator.c index 12ce26b914,e66b39ca63..c822cefd3e --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@@ -436,12 -429,13 +439,12 @@@ static zend_always_inline zend_string * zend_string *accel_new_interned_string(zend_string *str) { - zend_ulong h; - uint32_t nIndex; - uint32_t idx; - Bucket *p; + zend_ulong h; + uint32_t pos, *hash_slot; + zend_string *s; #ifdef HAVE_OPCACHE_FILE_CACHE - if (UNEXPECTED(ZCG(accel_directives).file_cache_only)) { - if (file_cache_only) { ++ if (UNEXPECTED(file_cache_only)) { return str; } #endif @@@ -2134,9 -2042,12 +2137,12 @@@ static int persistent_stream_open_funct } /* zend_resolve_path() replacement for PHP 5.3 and above */ -static zend_string* persistent_zend_resolve_path(const char *filename, int filename_len) +static zend_string* persistent_zend_resolve_path(const char *filename, size_t filename_len) { if (ZCG(enabled) && accel_startup_ok && + #ifdef HAVE_OPCACHE_FILE_CACHE + !file_cache_only && + #endif (ZCG(counted) || ZCSG(accelerator_enabled)) && !ZCSG(restart_in_progress)) { @@@ -2895,9 -2782,13 +2903,9 @@@ void accel_shutdown(void } #ifdef HAVE_OPCACHE_FILE_CACHE - file_cache_only = ZCG(accel_directives).file_cache_only; + _file_cache_only = file_cache_only; #endif - if (!_file_cache_only && ZCG(accel_directives).interned_strings_buffer) { - accel_use_permanent_interned_strings(); - } - accel_reset_pcre_cache(); accel_free_ts_resources(); diff --cc ext/opcache/zend_persist.c index d433b75d0b,ef474b133a..e063f1f4aa --- a/ext/opcache/zend_persist.c +++ b/ext/opcache/zend_persist.c @@@ -35,10 -35,10 +35,10 @@@ #ifdef HAVE_OPCACHE_FILE_CACHE #define zend_set_str_gc_flags(str) do { \ - if (ZCG(accel_directives).file_cache_only) { \ + if (file_cache_only) { \ - GC_FLAGS(str) = IS_STR_INTERNED; \ + GC_TYPE_INFO(str) = IS_STRING | (IS_STR_INTERNED << GC_FLAGS_SHIFT); \ } else { \ - GC_FLAGS(str) = IS_STR_INTERNED | IS_STR_PERMANENT; \ + GC_TYPE_INFO(str) = IS_STRING | ((IS_STR_INTERNED | IS_STR_PERMANENT) << GC_FLAGS_SHIFT); \ } \ } while (0) #else