/* generate ZEND_INIT_FCALL_BY_NAME for userland functions instead of ZEND_INIT_FCALL */
#define ZEND_COMPILE_IGNORE_USER_FUNCTIONS (1<<8)
-/* force IS_OBJ_USE_GUARDS for all classes */
+/* force ZEND_ACC_USE_GUARDS for all classes */
#define ZEND_COMPILE_GUARDS (1<<9)
/* disable builtin special case function calls */
zval *zv;
uint32_t *ptr;
- ZEND_ASSERT(OBJ_FLAGS(zobj) & IS_OBJ_USE_GUARDS);
+ ZEND_ASSERT(zobj->ce->ce_flags & ZEND_ACC_USE_GUARDS);
zv = zobj->properties_table + zobj->ce->default_properties_count;
if (EXPECTED(Z_TYPE_P(zv) == IS_STRING)) {
zend_string *str = Z_STR_P(zv);
}
} else {
ZEND_ASSERT(Z_TYPE_P(zv) == IS_UNDEF);
- OBJ_FLAGS(zobj) |= IS_OBJ_HAS_GUARDS;
ZVAL_STR_COPY(zv, member);
Z_PROPERTY_GUARD_P(zv) = 0;
return &Z_PROPERTY_GUARD_P(zv);
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);
}
}
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);
/* object flags (zval.value->gc.u.flags) */
#define IS_OBJ_DESTRUCTOR_CALLED (1<<4)
#define IS_OBJ_FREE_CALLED (1<<5)
-#define IS_OBJ_USE_GUARDS (1<<6)
-#define IS_OBJ_HAS_GUARDS (1<<7)
#define OBJ_FLAGS(obj) GC_FLAGS(obj)