]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.2'
authorDmitry Stogov <dmitry@zend.com>
Thu, 28 Dec 2017 11:10:01 +0000 (14:10 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 28 Dec 2017 11:10:01 +0000 (14:10 +0300)
* PHP-7.2:
  Fixed bug #75720 (File cache not populated after SHM runs full)

1  2 
ext/opcache/ZendAccelerator.c

index 1b1fbf9fcf105f571b5f32da3263183bd1831031,be9d162a6cb1d1d36ef9aa44e1140f4b878a8d15..a06bc00070f80f5a713b3eea60a433c8d474d1d5
@@@ -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;