mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Fixed required SHM memeory size calculation for scripts when opcache.revalidate_path is set.
This commit is contained in:
parent
d042d1d8e0
commit
7ff13badda
@ -1276,7 +1276,7 @@ static zend_persistent_script *cache_script_in_file_cache(zend_persistent_script
|
||||
zend_shared_alloc_init_xlat_table();
|
||||
|
||||
/* Calculate the required memory size */
|
||||
memory_used = zend_accel_script_persist_calc(new_persistent_script, NULL, 0);
|
||||
memory_used = zend_accel_script_persist_calc(new_persistent_script, NULL, 0, 0);
|
||||
|
||||
/* Allocate memory block */
|
||||
#ifdef __SSE2__
|
||||
@ -1364,7 +1364,7 @@ static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_scr
|
||||
zend_shared_alloc_init_xlat_table();
|
||||
|
||||
/* Calculate the required memory size */
|
||||
memory_used = zend_accel_script_persist_calc(new_persistent_script, key, key_length);
|
||||
memory_used = zend_accel_script_persist_calc(new_persistent_script, key, key_length, 1);
|
||||
|
||||
/* Allocate shared memory */
|
||||
#ifdef __SSE2__
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define ZEND_PERSIST_H
|
||||
|
||||
int zend_accel_script_persistable(zend_persistent_script *script);
|
||||
uint32_t zend_accel_script_persist_calc(zend_persistent_script *script, char *key, unsigned int key_length);
|
||||
uint32_t zend_accel_script_persist_calc(zend_persistent_script *script, char *key, unsigned int key_length, int for_shm);
|
||||
zend_persistent_script *zend_accel_script_persist(zend_persistent_script *script, char **key, unsigned int key_length);
|
||||
|
||||
#endif /* ZEND_PERSIST_H */
|
||||
|
@ -394,7 +394,7 @@ static void zend_accel_persist_class_table_calc(HashTable *class_table)
|
||||
zend_hash_persist_calc(class_table, zend_persist_class_entry_calc);
|
||||
}
|
||||
|
||||
uint32_t zend_accel_script_persist_calc(zend_persistent_script *new_persistent_script, char *key, unsigned int key_length)
|
||||
uint32_t zend_accel_script_persist_calc(zend_persistent_script *new_persistent_script, char *key, unsigned int key_length, int for_shm)
|
||||
{
|
||||
new_persistent_script->mem = NULL;
|
||||
new_persistent_script->size = 0;
|
||||
@ -403,12 +403,14 @@ uint32_t zend_accel_script_persist_calc(zend_persistent_script *new_persistent_s
|
||||
new_persistent_script->corrupted = 0;
|
||||
ZCG(current_persistent_script) = new_persistent_script;
|
||||
|
||||
if (!for_shm) {
|
||||
/* script is not going to be saved in SHM */
|
||||
new_persistent_script->corrupted = 1;
|
||||
}
|
||||
|
||||
ADD_DUP_SIZE(new_persistent_script, sizeof(zend_persistent_script));
|
||||
if (key) {
|
||||
ADD_DUP_SIZE(key, key_length + 1);
|
||||
} else {
|
||||
/* script is not going to be saved in SHM */
|
||||
new_persistent_script->corrupted = 1;
|
||||
}
|
||||
ADD_STRING(new_persistent_script->script.filename);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user