Lines Matching refs:zobj

61 ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */  in rebuild_object_properties()  argument
63 if (!zobj->properties) { in rebuild_object_properties()
65 zend_class_entry *ce = zobj->ce; in rebuild_object_properties()
68 zobj->properties = zend_new_array(ce->default_properties_count); in rebuild_object_properties()
70 zend_hash_real_init_mixed(zobj->properties); in rebuild_object_properties()
75 if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { in rebuild_object_properties()
76 HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; in rebuild_object_properties()
79 _zend_hash_append_ind(zobj->properties, prop_info->name, in rebuild_object_properties()
80 OBJ_PROP(zobj, prop_info->offset)); in rebuild_object_properties()
92 if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { in rebuild_object_properties()
93 HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; in rebuild_object_properties()
96 ZVAL_INDIRECT(&zv, OBJ_PROP(zobj, prop_info->offset)); in rebuild_object_properties()
97 zend_hash_add(zobj->properties, prop_info->name, &zv); in rebuild_object_properties()
109 zend_object *zobj; in zend_std_get_properties() local
110 zobj = Z_OBJ_P(object); in zend_std_get_properties()
111 if (!zobj->properties) { in zend_std_get_properties()
112 rebuild_object_properties(zobj); in zend_std_get_properties()
114 return zobj->properties; in zend_std_get_properties()
125 zend_object *zobj = Z_OBJ_P(object); in zend_std_get_gc() local
127 if (zobj->properties) { in zend_std_get_gc()
130 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1) in zend_std_get_gc()
131 && EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_get_gc()
132 GC_DELREF(zobj->properties); in zend_std_get_gc()
133 zobj->properties = zend_array_dup(zobj->properties); in zend_std_get_gc()
135 return zobj->properties; in zend_std_get_gc()
137 *table = zobj->properties_table; in zend_std_get_gc()
138 *n = zobj->ce->default_properties_count; in zend_std_get_gc()
182 static void zend_std_call_getter(zend_object *zobj, zend_string *prop_name, zval *retval) /* {{{ */ in zend_std_call_getter() argument
184 zend_class_entry *ce = zobj->ce; in zend_std_call_getter()
201 fci.object = zobj; in zend_std_call_getter()
210 fcic.object = zobj; in zend_std_call_getter()
218 static void zend_std_call_setter(zend_object *zobj, zend_string *prop_name, zval *value) /* {{{ */ in zend_std_call_setter() argument
220 zend_class_entry *ce = zobj->ce; in zend_std_call_setter()
238 fci.object = zobj; in zend_std_call_setter()
247 fcic.object = zobj; in zend_std_call_setter()
256 static void zend_std_call_unsetter(zend_object *zobj, zend_string *prop_name) /* {{{ */ in zend_std_call_unsetter() argument
258 zend_class_entry *ce = zobj->ce; in zend_std_call_unsetter()
274 fci.object = zobj; in zend_std_call_unsetter()
283 fcic.object = zobj; in zend_std_call_unsetter()
292 static void zend_std_call_issetter(zend_object *zobj, zend_string *prop_name, zval *retval) /* {{{ … in zend_std_call_issetter() argument
294 zend_class_entry *ce = zobj->ce; in zend_std_call_issetter()
311 fci.object = zobj; in zend_std_call_issetter()
320 fcic.object = zobj; in zend_std_call_issetter()
557 ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name, zend_bool i… in zend_check_property_access() argument
572 property_info = zend_get_property_info(zobj->ce, member, 1); in zend_check_property_access()
591 property_info = zend_get_property_info(zobj->ce, prop_info_name, 1); in zend_check_property_access()
611 ZEND_API uint32_t *zend_get_property_guard(zend_object *zobj, zend_string *member) /* {{{ */ in zend_get_property_guard() argument
617 ZEND_ASSERT(zobj->ce->ce_flags & ZEND_ACC_USE_GUARDS); in zend_get_property_guard()
618 zv = zobj->properties_table + zobj->ce->default_properties_count; in zend_get_property_guard()
661 zend_object *zobj; in zend_std_read_property() local
668 zobj = Z_OBJ_P(object); in zend_std_read_property()
679 …property_offset = zend_get_property_offset(zobj->ce, name, (type == BP_VAR_IS) || (zobj->ce->__get… in zend_std_read_property()
682 retval = OBJ_PROP(zobj, property_offset); in zend_std_read_property()
691 if (EXPECTED(zobj->properties != NULL)) { in zend_std_read_property()
695 if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { in zend_std_read_property()
696 Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); in zend_std_read_property()
709 retval = zend_hash_find(zobj->properties, name); in zend_std_read_property()
712 uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; in zend_std_read_property()
724 if ((type == BP_VAR_IS) && zobj->ce->__isset) { in zend_std_read_property()
726 guard = zend_get_property_guard(zobj, name); in zend_std_read_property()
732 GC_ADDREF(zobj); in zend_std_read_property()
736 zend_std_call_issetter(zobj, name, &tmp_result); in zend_std_read_property()
741 OBJ_RELEASE(zobj); in zend_std_read_property()
747 if (zobj->ce->__get && !((*guard) & IN_GET)) { in zend_std_read_property()
750 OBJ_RELEASE(zobj); in zend_std_read_property()
751 } else if (zobj->ce->__get && !((*guard) & IN_GET)) { in zend_std_read_property()
754 } else if (zobj->ce->__get) { in zend_std_read_property()
756 guard = zend_get_property_guard(zobj, name); in zend_std_read_property()
760 GC_ADDREF(zobj); in zend_std_read_property()
763 zend_std_call_getter(zobj, name, rv); in zend_std_read_property()
771 …rect modification of overloaded property %s::$%s has no effect", ZSTR_VAL(zobj->ce->name), ZSTR_VA… in zend_std_read_property()
779 …zend_verify_prop_assignable_by_ref(prop_info, retval, (zobj->ce->__get->common.fn_flags & ZEND_ACC… in zend_std_read_property()
782 OBJ_RELEASE(zobj); in zend_std_read_property()
786 zend_get_property_offset(zobj->ce, name, 0, NULL, &prop_info); in zend_std_read_property()
800 zend_error(E_NOTICE,"Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_read_property()
821 zend_object *zobj; in zend_std_write_property() local
828 zobj = Z_OBJ_P(object); in zend_std_write_property()
834 …property_offset = zend_get_property_offset(zobj->ce, name, (zobj->ce->__set != NULL), cache_slot, … in zend_std_write_property()
837 variable_ptr = OBJ_PROP(zobj, property_offset); in zend_std_write_property()
862 if (EXPECTED(zobj->properties != NULL)) { in zend_std_write_property()
863 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_write_property()
864 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_write_property()
865 GC_DELREF(zobj->properties); in zend_std_write_property()
867 zobj->properties = zend_array_dup(zobj->properties); in zend_std_write_property()
869 if ((variable_ptr = zend_hash_find(zobj->properties, name)) != NULL) { in zend_std_write_property()
880 if (zobj->ce->__set) { in zend_std_write_property()
881 uint32_t *guard = zend_get_property_guard(zobj, name); in zend_std_write_property()
884 GC_ADDREF(zobj); in zend_std_write_property()
886 zend_std_call_setter(zobj, name, value); in zend_std_write_property()
888 OBJ_RELEASE(zobj); in zend_std_write_property()
894 zend_wrong_offset(zobj->ce, name); in zend_std_write_property()
905 variable_ptr = OBJ_PROP(zobj, property_offset); in zend_std_write_property()
919 if (!zobj->properties) { in zend_std_write_property()
920 rebuild_object_properties(zobj); in zend_std_write_property()
922 variable_ptr = zend_hash_add_new(zobj->properties, name, value); in zend_std_write_property()
1040 zend_object *zobj; in zend_std_get_property_ptr_ptr() local
1046 zobj = Z_OBJ_P(object); in zend_std_get_property_ptr_ptr()
1056 …property_offset = zend_get_property_offset(zobj->ce, name, (zobj->ce->__get != NULL), cache_slot, … in zend_std_get_property_ptr_ptr()
1059 retval = OBJ_PROP(zobj, property_offset); in zend_std_get_property_ptr_ptr()
1061 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
1062 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET) || in zend_std_get_property_ptr_ptr()
1073 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
1082 if (EXPECTED(zobj->properties)) { in zend_std_get_property_ptr_ptr()
1083 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_get_property_ptr_ptr()
1084 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_get_property_ptr_ptr()
1085 GC_DELREF(zobj->properties); in zend_std_get_property_ptr_ptr()
1087 zobj->properties = zend_array_dup(zobj->properties); in zend_std_get_property_ptr_ptr()
1089 if (EXPECTED((retval = zend_hash_find(zobj->properties, name)) != NULL)) { in zend_std_get_property_ptr_ptr()
1094 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
1095 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) { in zend_std_get_property_ptr_ptr()
1096 if (UNEXPECTED(!zobj->properties)) { in zend_std_get_property_ptr_ptr()
1097 rebuild_object_properties(zobj); in zend_std_get_property_ptr_ptr()
1099 retval = zend_hash_update(zobj->properties, name, &EG(uninitialized_zval)); in zend_std_get_property_ptr_ptr()
1103 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
1106 } else if (zobj->ce->__get == NULL) { in zend_std_get_property_ptr_ptr()
1117 zend_object *zobj; in zend_std_unset_property() local
1122 zobj = Z_OBJ_P(object); in zend_std_unset_property()
1128 …property_offset = zend_get_property_offset(zobj->ce, name, (zobj->ce->__unset != NULL), cache_slot… in zend_std_unset_property()
1131 zval *slot = OBJ_PROP(zobj, property_offset); in zend_std_unset_property()
1144 if (zobj->properties) { in zend_std_unset_property()
1145 HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; in zend_std_unset_property()
1155 && EXPECTED(zobj->properties != NULL)) { in zend_std_unset_property()
1156 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_unset_property()
1157 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_unset_property()
1158 GC_DELREF(zobj->properties); in zend_std_unset_property()
1160 zobj->properties = zend_array_dup(zobj->properties); in zend_std_unset_property()
1162 if (EXPECTED(zend_hash_del(zobj->properties, name) != FAILURE)) { in zend_std_unset_property()
1170 if (zobj->ce->__unset) { in zend_std_unset_property()
1171 uint32_t *guard = zend_get_property_guard(zobj, name); in zend_std_unset_property()
1175 zend_std_call_unsetter(zobj, name); in zend_std_unset_property()
1179 zend_wrong_offset(zobj->ce, name); in zend_std_unset_property()
1324 zend_object *zobj = *obj_ptr; in zend_std_get_method() local
1341 if (UNEXPECTED((func = zend_hash_find(&zobj->ce->function_table, lc_method_name)) == NULL)) { in zend_std_get_method()
1345 if (zobj->ce->__call) { in zend_std_get_method()
1346 return zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1360 zend_function *updated_fbc = zend_get_parent_private_method(scope, zobj->ce, lc_method_name); in zend_std_get_method()
1371 if (zobj->ce->__call) { in zend_std_get_method()
1372 fbc = zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1588 ZEND_API zend_function *zend_std_get_constructor(zend_object *zobj) /* {{{ */ in zend_std_get_constructor() argument
1590 zend_function *constructor = zobj->ce->constructor; in zend_std_get_constructor()
1692 zend_object *zobj; in zend_std_has_property() local
1699 zobj = Z_OBJ_P(object); in zend_std_has_property()
1705 property_offset = zend_get_property_offset(zobj->ce, name, 1, cache_slot, &prop_info); in zend_std_has_property()
1708 value = OBJ_PROP(zobj, property_offset); in zend_std_has_property()
1718 if (EXPECTED(zobj->properties != NULL)) { in zend_std_has_property()
1722 if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { in zend_std_has_property()
1723 Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); in zend_std_has_property()
1736 value = zend_hash_find(zobj->properties, name); in zend_std_has_property()
1739 uintptr_t idx = (char*)value - (char*)zobj->properties->arData; in zend_std_has_property()
1762 if ((has_set_exists != ZEND_PROPERTY_EXISTS) && zobj->ce->__isset) { in zend_std_has_property()
1763 uint32_t *guard = zend_get_property_guard(zobj, name); in zend_std_has_property()
1772 GC_ADDREF(zobj); in zend_std_has_property()
1774 zend_std_call_issetter(zobj, name, &rv); in zend_std_has_property()
1778 if (EXPECTED(!EG(exception)) && zobj->ce->__get && !((*guard) & IN_GET)) { in zend_std_has_property()
1780 zend_std_call_getter(zobj, name, &rv); in zend_std_has_property()
1789 OBJ_RELEASE(zobj); in zend_std_has_property()
1799 ZEND_API zend_string *zend_std_get_class_name(const zend_object *zobj) /* {{{ */ in zend_std_get_class_name() argument
1801 return zend_string_copy(zobj->ce->name); in zend_std_get_class_name()