mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Avoid unnecessary static_variables persistence
static_variables should be treated the same way as all other op_array components nowadays (only static_variables_ptr is special). There's no need to persist/serialize it is separately per shared op_array.
This commit is contained in:
parent
994d4199d5
commit
709e45d89b
3 changed files with 32 additions and 30 deletions
|
@ -461,18 +461,10 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
|
|||
return;
|
||||
}
|
||||
|
||||
if (op_array->static_variables) {
|
||||
HashTable *ht;
|
||||
|
||||
SERIALIZE_PTR(op_array->static_variables);
|
||||
ht = op_array->static_variables;
|
||||
UNSERIALIZE_PTR(ht);
|
||||
zend_file_cache_serialize_hash(ht, script, info, buf, zend_file_cache_serialize_zval);
|
||||
}
|
||||
|
||||
if (op_array->scope) {
|
||||
if (UNEXPECTED(zend_shared_alloc_get_xlat_entry(op_array->opcodes))) {
|
||||
op_array->refcount = (uint32_t*)(intptr_t)-1;
|
||||
SERIALIZE_PTR(op_array->static_variables);
|
||||
SERIALIZE_PTR(op_array->literals);
|
||||
SERIALIZE_PTR(op_array->opcodes);
|
||||
SERIALIZE_PTR(op_array->arg_info);
|
||||
|
@ -490,6 +482,15 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
|
|||
zend_shared_alloc_register_xlat_entry(op_array->opcodes, op_array->opcodes);
|
||||
}
|
||||
|
||||
if (op_array->static_variables) {
|
||||
HashTable *ht;
|
||||
|
||||
SERIALIZE_PTR(op_array->static_variables);
|
||||
ht = op_array->static_variables;
|
||||
UNSERIALIZE_PTR(ht);
|
||||
zend_file_cache_serialize_hash(ht, script, info, buf, zend_file_cache_serialize_zval);
|
||||
}
|
||||
|
||||
if (op_array->literals) {
|
||||
zval *p, *end;
|
||||
|
||||
|
@ -1274,17 +1275,9 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
|
|||
return;
|
||||
}
|
||||
|
||||
if (op_array->static_variables) {
|
||||
HashTable *ht;
|
||||
|
||||
UNSERIALIZE_PTR(op_array->static_variables);
|
||||
ht = op_array->static_variables;
|
||||
zend_file_cache_unserialize_hash(ht,
|
||||
script, buf, zend_file_cache_unserialize_zval, ZVAL_PTR_DTOR);
|
||||
}
|
||||
|
||||
if (op_array->refcount) {
|
||||
op_array->refcount = NULL;
|
||||
UNSERIALIZE_PTR(op_array->static_variables);
|
||||
UNSERIALIZE_PTR(op_array->literals);
|
||||
UNSERIALIZE_PTR(op_array->opcodes);
|
||||
UNSERIALIZE_PTR(op_array->arg_info);
|
||||
|
@ -1300,6 +1293,15 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
|
|||
return;
|
||||
}
|
||||
|
||||
if (op_array->static_variables) {
|
||||
HashTable *ht;
|
||||
|
||||
UNSERIALIZE_PTR(op_array->static_variables);
|
||||
ht = op_array->static_variables;
|
||||
zend_file_cache_unserialize_hash(ht,
|
||||
script, buf, zend_file_cache_unserialize_zval, ZVAL_PTR_DTOR);
|
||||
}
|
||||
|
||||
if (op_array->literals) {
|
||||
zval *p, *end;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue