Skip to content

Commit 8f14b0e

Browse files
committed
Fix opcache/JIT
1 parent ba3d8c4 commit 8f14b0e

File tree

4 files changed

+4
-70
lines changed

4 files changed

+4
-70
lines changed

Zend/zend_opcode.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,6 @@ ZEND_API void destroy_zend_class(zval *zv)
330330
if (ce->attributes) {
331331
zend_hash_release(ce->attributes);
332332
}
333-
if (ce->backed_enum_table) {
334-
zend_hash_release(ce->backed_enum_table);
335-
}
336333

337334
if (ce->num_interfaces > 0 && !(ce->ce_flags & ZEND_ACC_RESOLVED_INTERFACES)) {
338335
uint32_t i;
@@ -403,6 +400,9 @@ ZEND_API void destroy_zend_class(zval *zv)
403400
if (ce->num_interfaces > 0 && (ce->ce_flags & ZEND_ACC_RESOLVED_INTERFACES)) {
404401
efree(ce->interfaces);
405402
}
403+
if (ce->backed_enum_table) {
404+
zend_hash_release(ce->backed_enum_table);
405+
}
406406
break;
407407
case ZEND_INTERNAL_CLASS:
408408
if (ce->backed_enum_table) {

ext/opcache/zend_file_cache.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -848,14 +848,6 @@ static void zend_file_cache_serialize_class(zval *zv,
848848
}
849849
}
850850

851-
if (ce->backed_enum_table) {
852-
HashTable *ht;
853-
SERIALIZE_PTR(ce->backed_enum_table);
854-
ht = ce->backed_enum_table;
855-
UNSERIALIZE_PTR(ht);
856-
zend_file_cache_serialize_hash(ht, script, info, buf, zend_file_cache_serialize_zval);
857-
}
858-
859851
SERIALIZE_PTR(ce->constructor);
860852
SERIALIZE_PTR(ce->destructor);
861853
SERIALIZE_PTR(ce->clone);
@@ -1645,12 +1637,6 @@ static void zend_file_cache_unserialize_class(zval *zv,
16451637
}
16461638
}
16471639

1648-
if (ce->backed_enum_table) {
1649-
UNSERIALIZE_PTR(ce->backed_enum_table);
1650-
zend_file_cache_unserialize_hash(
1651-
ce->backed_enum_table, script, buf, zend_file_cache_unserialize_zval, ZVAL_PTR_DTOR);
1652-
}
1653-
16541640
UNSERIALIZE_PTR(ce->constructor);
16551641
UNSERIALIZE_PTR(ce->destructor);
16561642
UNSERIALIZE_PTR(ce->clone);

ext/opcache/zend_persist.c

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -336,35 +336,6 @@ uint32_t zend_accel_get_class_name_map_ptr(zend_string *type_name)
336336
return 0;
337337
}
338338

339-
static HashTable *zend_persist_backed_enum_table(HashTable *backed_enum_table)
340-
{
341-
HashTable *ptr;
342-
zend_hash_persist(backed_enum_table);
343-
344-
if (HT_IS_PACKED(backed_enum_table)) {
345-
zval *zv;
346-
347-
ZEND_HASH_PACKED_FOREACH_VAL(backed_enum_table, zv) {
348-
zend_persist_zval(zv);
349-
} ZEND_HASH_FOREACH_END();
350-
} else {
351-
Bucket *p;
352-
353-
ZEND_HASH_MAP_FOREACH_BUCKET(backed_enum_table, p) {
354-
if (p->key != NULL) {
355-
zend_accel_store_interned_string(p->key);
356-
}
357-
zend_persist_zval(&p->val);
358-
} ZEND_HASH_FOREACH_END();
359-
}
360-
361-
ptr = zend_shared_memdup_free(backed_enum_table, sizeof(HashTable));
362-
GC_SET_REFCOUNT(ptr, 2);
363-
GC_TYPE_INFO(ptr) = GC_ARRAY | ((IS_ARRAY_IMMUTABLE|GC_NOT_COLLECTABLE) << GC_FLAGS_SHIFT);
364-
365-
return ptr;
366-
}
367-
368339
static void zend_persist_type(zend_type *type) {
369340
if (ZEND_TYPE_HAS_LIST(*type)) {
370341
zend_type_list *list = ZEND_TYPE_LIST(*type);
@@ -1072,9 +1043,7 @@ zend_class_entry *zend_persist_class_entry(zend_class_entry *orig_ce)
10721043
}
10731044
}
10741045

1075-
if (ce->backed_enum_table) {
1076-
ce->backed_enum_table = zend_persist_backed_enum_table(ce->backed_enum_table);
1077-
}
1046+
ZEND_ASSERT(ce->backed_enum_table == NULL);
10781047
}
10791048

10801049
return ce;

ext/opcache/zend_persist_calc.c

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -547,27 +547,6 @@ void zend_persist_class_entry_calc(zend_class_entry *ce)
547547
ADD_SIZE(sizeof(zend_trait_precedence*) * (i + 1));
548548
}
549549
}
550-
551-
if (ce->backed_enum_table) {
552-
ADD_SIZE(sizeof(HashTable));
553-
zend_hash_persist_calc(ce->backed_enum_table);
554-
if (HT_IS_PACKED(ce->backed_enum_table)) {
555-
zval *zv;
556-
557-
ZEND_HASH_PACKED_FOREACH_VAL(ce->backed_enum_table, zv) {
558-
zend_persist_zval_calc(zv);
559-
} ZEND_HASH_FOREACH_END();
560-
} else {
561-
Bucket *p;
562-
563-
ZEND_HASH_MAP_FOREACH_BUCKET(ce->backed_enum_table, p) {
564-
if (p->key != NULL) {
565-
ADD_INTERNED_STRING(p->key);
566-
}
567-
zend_persist_zval_calc(&p->val);
568-
} ZEND_HASH_FOREACH_END();
569-
}
570-
}
571550
}
572551
}
573552

0 commit comments

Comments
 (0)