diff options
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r-- | Zend/zend_objects.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 1e362e678d..1c0381f8fa 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -35,7 +35,6 @@ ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class object->properties = NULL; zend_objects_store_put(object); if (UNEXPECTED(ce->ce_flags & ZEND_ACC_USE_GUARDS)) { - OBJ_FLAGS(object) |= IS_OBJ_USE_GUARDS; ZVAL_UNDEF(object->properties_table + object->ce->default_properties_count); } } @@ -59,13 +58,12 @@ ZEND_API void zend_object_std_dtor(zend_object *object) p++; } while (p != end); } - if (UNEXPECTED(OBJ_FLAGS(object) & IS_OBJ_HAS_GUARDS)) { + if (UNEXPECTED(object->ce->ce_flags & ZEND_ACC_USE_GUARDS)) { if (EXPECTED(Z_TYPE_P(p) == IS_STRING)) { zend_string_release(Z_STR_P(p)); - } else { + } else if (Z_TYPE_P(p) == IS_ARRAY) { HashTable *guards; - ZEND_ASSERT(Z_TYPE_P(p) == IS_ARRAY); guards = Z_ARRVAL_P(p); ZEND_ASSERT(guards != NULL); zend_hash_destroy(guards); |