Lines Matching refs:zobj

73 ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */  in rebuild_object_properties()  argument
75 if (!zobj->properties) { in rebuild_object_properties()
77 zend_class_entry *ce = zobj->ce; in rebuild_object_properties()
79 ALLOC_HASHTABLE(zobj->properties); in rebuild_object_properties()
80 zend_hash_init(zobj->properties, ce->default_properties_count, NULL, ZVAL_PTR_DTOR, 0); in rebuild_object_properties()
82 zend_hash_real_init(zobj->properties, 0); in rebuild_object_properties()
83 zobj->properties->nInternalPointer = 0; in rebuild_object_properties()
88 if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { in rebuild_object_properties()
89 zobj->properties->u.v.flags |= HASH_FLAG_HAS_EMPTY_IND; in rebuild_object_properties()
92 _zend_hash_append_ind(zobj->properties, prop_info->name, in rebuild_object_properties()
93 OBJ_PROP(zobj, prop_info->offset)); in rebuild_object_properties()
104 if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { in rebuild_object_properties()
105 zobj->properties->u.v.flags |= HASH_FLAG_HAS_EMPTY_IND; in rebuild_object_properties()
108 ZVAL_INDIRECT(&zv, OBJ_PROP(zobj, prop_info->offset)); in rebuild_object_properties()
109 zend_hash_add(zobj->properties, prop_info->name, &zv); in rebuild_object_properties()
120 zend_object *zobj; in zend_std_get_properties() local
121 zobj = Z_OBJ_P(object); in zend_std_get_properties()
122 if (!zobj->properties) { in zend_std_get_properties()
123 rebuild_object_properties(zobj); in zend_std_get_properties()
125 return zobj->properties; in zend_std_get_properties()
136 zend_object *zobj = Z_OBJ_P(object); in zend_std_get_gc() local
138 if (zobj->properties) { in zend_std_get_gc()
141 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1) in zend_std_get_gc()
142 && EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_get_gc()
143 GC_REFCOUNT(zobj->properties)--; in zend_std_get_gc()
144 zobj->properties = zend_array_dup(zobj->properties); in zend_std_get_gc()
146 return zobj->properties; in zend_std_get_gc()
148 *table = zobj->properties_table; in zend_std_get_gc()
149 *n = zobj->ce->default_properties_count; in zend_std_get_gc()
470 ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name) /* {{{ */ in zend_check_property_access() argument
484 property_info = zend_get_property_info(zobj->ce, member, 1); in zend_check_property_access()
505 return zend_verify_property_access(property_info, zobj->ce) ? SUCCESS : FAILURE; in zend_check_property_access()
517 ZEND_API uint32_t *zend_get_property_guard(zend_object *zobj, zend_string *member) /* {{{ */ in zend_get_property_guard() argument
523 ZEND_ASSERT(GC_FLAGS(zobj) & IS_OBJ_USE_GUARDS); in zend_get_property_guard()
524 zv = zobj->properties_table + zobj->ce->default_properties_count; in zend_get_property_guard()
555 GC_FLAGS(zobj) |= IS_OBJ_HAS_GUARDS; in zend_get_property_guard()
569 zend_object *zobj; in zend_std_read_property() local
575 zobj = Z_OBJ_P(object); in zend_std_read_property()
589 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (type == BP_VAR_IS) || (zobj in zend_std_read_property()
593 retval = OBJ_PROP(zobj, property_offset); in zend_std_read_property()
597 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_read_property()
598 retval = zend_hash_find(zobj->properties, Z_STR_P(member)); in zend_std_read_property()
609 if ((type == BP_VAR_IS) && zobj->ce->__isset) { in zend_std_read_property()
611 guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_read_property()
637 if (zobj->ce->__get) { in zend_std_read_property()
639 guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_read_property()
656 …rect modification of overloaded property %s::$%s has no effect", ZSTR_VAL(zobj->ce->name), Z_STRVA… in zend_std_read_property()
675 zend_error(E_NOTICE,"Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), Z_STRVAL_P(member)); in zend_std_read_property()
690 zend_object *zobj; in zend_std_write_property() local
695 zobj = Z_OBJ_P(object); in zend_std_write_property()
704 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (zobj->ce->__set != NULL), c… in zend_std_write_property()
708 variable_ptr = OBJ_PROP(zobj, property_offset); in zend_std_write_property()
712 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_write_property()
713 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_write_property()
714 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_write_property()
715 GC_REFCOUNT(zobj->properties)--; in zend_std_write_property()
717 zobj->properties = zend_array_dup(zobj->properties); in zend_std_write_property()
719 if ((variable_ptr = zend_hash_find(zobj->properties, Z_STR_P(member))) != NULL) { in zend_std_write_property()
730 if (zobj->ce->__set) { in zend_std_write_property()
731 uint32_t *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_write_property()
763 ZVAL_COPY_VALUE(OBJ_PROP(zobj, property_offset), value); in zend_std_write_property()
765 if (!zobj->properties) { in zend_std_write_property()
766 rebuild_object_properties(zobj); in zend_std_write_property()
768 zend_hash_add_new(zobj->properties, Z_STR_P(member), value); in zend_std_write_property()
887 zend_object *zobj; in zend_std_get_property_ptr_ptr() local
892 zobj = Z_OBJ_P(object); in zend_std_get_property_ptr_ptr()
903 property_offset = zend_get_property_offset(zobj->ce, name, (zobj->ce->__get != NULL), cache_slot); in zend_std_get_property_ptr_ptr()
907 retval = OBJ_PROP(zobj, property_offset); in zend_std_get_property_ptr_ptr()
909 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
910 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) { in zend_std_get_property_ptr_ptr()
915 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
923 if (EXPECTED(zobj->properties)) { in zend_std_get_property_ptr_ptr()
924 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_get_property_ptr_ptr()
925 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_get_property_ptr_ptr()
926 GC_REFCOUNT(zobj->properties)--; in zend_std_get_property_ptr_ptr()
928 zobj->properties = zend_array_dup(zobj->properties); in zend_std_get_property_ptr_ptr()
930 if (EXPECTED((retval = zend_hash_find(zobj->properties, name)) != NULL)) { in zend_std_get_property_ptr_ptr()
937 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
938 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) { in zend_std_get_property_ptr_ptr()
939 if (UNEXPECTED(!zobj->properties)) { in zend_std_get_property_ptr_ptr()
940 rebuild_object_properties(zobj); in zend_std_get_property_ptr_ptr()
942 retval = zend_hash_update(zobj->properties, name, &EG(uninitialized_zval)); in zend_std_get_property_ptr_ptr()
946 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
961 zend_object *zobj; in zend_std_unset_property() local
965 zobj = Z_OBJ_P(object); in zend_std_unset_property()
974 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (zobj->ce->__unset != NULL),… in zend_std_unset_property()
978 zval *slot = OBJ_PROP(zobj, property_offset); in zend_std_unset_property()
983 if (zobj->properties) { in zend_std_unset_property()
984 zobj->properties->u.v.flags |= HASH_FLAG_HAS_EMPTY_IND; in zend_std_unset_property()
988 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_unset_property()
989 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_unset_property()
990 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_unset_property()
991 GC_REFCOUNT(zobj->properties)--; in zend_std_unset_property()
993 zobj->properties = zend_array_dup(zobj->properties); in zend_std_unset_property()
995 if (EXPECTED(zend_hash_del(zobj->properties, Z_STR_P(member)) != FAILURE)) { in zend_std_unset_property()
1004 if (zobj->ce->__unset) { in zend_std_unset_property()
1005 uint32_t *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_unset_property()
1180 zend_object *zobj = *obj_ptr; in zend_std_get_method() local
1197 if (UNEXPECTED((func = zend_hash_find(&zobj->ce->function_table, lc_method_name)) == NULL)) { in zend_std_get_method()
1201 if (zobj->ce->__call) { in zend_std_get_method()
1202 return zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1216 updated_fbc = zend_check_private_int(fbc, zobj->ce, lc_method_name); in zend_std_get_method()
1220 if (zobj->ce->__call) { in zend_std_get_method()
1221 fbc = zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1251 if (zobj->ce->__call) { in zend_std_get_method()
1252 fbc = zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1419 ZEND_API union _zend_function *zend_std_get_constructor(zend_object *zobj) /* {{{ */ in zend_std_get_constructor() argument
1421 zend_function *constructor = zobj->ce->constructor; in zend_std_get_constructor()
1538 zend_object *zobj; in zend_std_has_property() local
1544 zobj = Z_OBJ_P(object); in zend_std_has_property()
1553 property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), 1, cache_slot); in zend_std_has_property()
1557 value = OBJ_PROP(zobj, property_offset); in zend_std_has_property()
1561 } else if (EXPECTED(zobj->properties != NULL) && in zend_std_has_property()
1562 (value = zend_hash_find(zobj->properties, Z_STR_P(member))) != NULL) { in zend_std_has_property()
1584 if ((has_set_exists != 2) && zobj->ce->__isset) { in zend_std_has_property()
1585 uint32_t *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_has_property()
1603 if (EXPECTED(!EG(exception)) && zobj->ce->__get && !((*guard) & IN_GET)) { in zend_std_has_property()
1631 zend_string *zend_std_object_get_class_name(const zend_object *zobj) /* {{{ */ in zend_std_object_get_class_name() argument
1633 return zend_string_copy(zobj->ce->name); in zend_std_object_get_class_name()