summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-01-24 16:20:30 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-01-24 16:20:30 +0100
commitebd00c5b652bb08683c1026552c82ddc8c2016bd (patch)
treeb983bd6364f2f71031529be5f97aef8a8aa585df
parent98bfad738ad2734dfba5733323f7ba733daf3ec3 (diff)
parent3291891408556cb412bf1093a6112951dec1421e (diff)
downloadphp-git-ebd00c5b652bb08683c1026552c82ddc8c2016bd.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: Fixed bug #79128
-rw-r--r--ext/opcache/ZendAccelerator.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index e821729a1f..ee2219bec8 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -4270,19 +4270,24 @@ static zend_persistent_script* preload_script_in_shared_memory(zend_persistent_s
static void preload_load(void)
{
/* Load into process tables */
- if (zend_hash_num_elements(&ZCSG(preload_script)->script.function_table)) {
- Bucket *p = ZCSG(preload_script)->script.function_table.arData;
- Bucket *end = p + ZCSG(preload_script)->script.function_table.nNumUsed;
+ zend_script *script = &ZCSG(preload_script)->script;
+ if (zend_hash_num_elements(&script->function_table)) {
+ Bucket *p = script->function_table.arData;
+ Bucket *end = p + script->function_table.nNumUsed;
+ zend_hash_extend(CG(function_table),
+ CG(function_table)->nNumUsed + script->function_table.nNumUsed, 0);
for (; p != end; p++) {
_zend_hash_append_ptr_ex(CG(function_table), p->key, Z_PTR(p->val), 1);
}
}
- if (zend_hash_num_elements(&ZCSG(preload_script)->script.class_table)) {
- Bucket *p = ZCSG(preload_script)->script.class_table.arData;
- Bucket *end = p + ZCSG(preload_script)->script.class_table.nNumUsed;
+ if (zend_hash_num_elements(&script->class_table)) {
+ Bucket *p = script->class_table.arData;
+ Bucket *end = p + script->class_table.nNumUsed;
+ zend_hash_extend(CG(class_table),
+ CG(class_table)->nNumUsed + script->class_table.nNumUsed, 0);
for (; p != end; p++) {
_zend_hash_append_ex(CG(class_table), p->key, &p->val, 1);
}