Backport 7ff13badda into 7.0+

This commit is contained in:
Anatol Belski 2017-10-18 16:02:56 +02:00
parent 9891f11f84
commit d82805f097
3 changed files with 9 additions and 7 deletions

View file

@ -1221,7 +1221,7 @@ static zend_persistent_script *cache_script_in_file_cache(zend_persistent_script
zend_shared_alloc_init_xlat_table(); zend_shared_alloc_init_xlat_table();
/* Calculate the required memory size */ /* 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 */ /* Allocate memory block */
#ifdef __SSE2__ #ifdef __SSE2__
@ -1309,7 +1309,7 @@ static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_scr
zend_shared_alloc_init_xlat_table(); zend_shared_alloc_init_xlat_table();
/* Calculate the required memory size */ /* 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 */ /* Allocate shared memory */
#ifdef __SSE2__ #ifdef __SSE2__

View file

@ -23,7 +23,7 @@
#define ZEND_PERSIST_H #define ZEND_PERSIST_H
int zend_accel_script_persistable(zend_persistent_script *script); int zend_accel_script_persistable(zend_persistent_script *script);
uint zend_accel_script_persist_calc(zend_persistent_script *script, char *key, unsigned int key_length); uint 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); zend_persistent_script *zend_accel_script_persist(zend_persistent_script *script, char **key, unsigned int key_length);
#endif /* ZEND_PERSIST_H */ #endif /* ZEND_PERSIST_H */

View file

@ -381,7 +381,7 @@ static void zend_accel_persist_class_table_calc(HashTable *class_table)
zend_hash_persist_calc(class_table, zend_persist_class_entry_calc); zend_hash_persist_calc(class_table, zend_persist_class_entry_calc);
} }
uint zend_accel_script_persist_calc(zend_persistent_script *new_persistent_script, char *key, unsigned int key_length) uint 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->mem = NULL;
new_persistent_script->size = 0; new_persistent_script->size = 0;
@ -390,12 +390,14 @@ uint zend_accel_script_persist_calc(zend_persistent_script *new_persistent_scrip
new_persistent_script->corrupted = 0; new_persistent_script->corrupted = 0;
ZCG(current_persistent_script) = new_persistent_script; 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)); ADD_DUP_SIZE(new_persistent_script, sizeof(zend_persistent_script));
if (key) { if (key) {
ADD_DUP_SIZE(key, key_length + 1); 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->full_path); ADD_STRING(new_persistent_script->full_path);