From: Dmitry Stogov Date: Thu, 28 Dec 2017 11:10:01 +0000 (+0300) Subject: Merge branch 'PHP-7.2' X-Git-Tag: php-7.3.0alpha1~726 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bee5bc78ed4c195feb034983def68be0e1d93048;p=php Merge branch 'PHP-7.2' * PHP-7.2: Fixed bug #75720 (File cache not populated after SHM runs full) --- bee5bc78ed4c195feb034983def68be0e1d93048 diff --cc ext/opcache/ZendAccelerator.c index 1b1fbf9fcf,be9d162a6c..a06bc00070 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@@ -1400,12 -1294,26 +1391,26 @@@ static zend_persistent_script *store_sc zend_file_cache_script_store(new_persistent_script, 0); - *from_shared_memory = 1; return new_persistent_script; } + + static zend_persistent_script *cache_script_in_file_cache(zend_persistent_script *new_persistent_script, int *from_shared_memory) + { + /* Check if script may be stored in shared memory */ + if (!zend_accel_script_persistable(new_persistent_script)) { + return new_persistent_script; + } + + if (!zend_optimize_script(&new_persistent_script->script, ZCG(accel_directives).optimization_level, ZCG(accel_directives).opt_debug_level)) { + return new_persistent_script; + } + + *from_shared_memory = 1; + return store_script_in_file_cache(new_persistent_script); + } #endif -static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_script *new_persistent_script, char *key, unsigned int key_length, int *from_shared_memory) +static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_script *new_persistent_script, const char *key, unsigned int key_length, int *from_shared_memory) { zend_accel_hash_entry *bucket; uint32_t memory_used;