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 return zobj->properties; in zend_std_get_gc()
143 *table = zobj->properties_table; in zend_std_get_gc()
144 *n = zobj->ce->default_properties_count; in zend_std_get_gc()
439 ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name) /* {{{ */ in zend_check_property_access() argument
453 property_info = zend_get_property_info(zobj->ce, member, 1); in zend_check_property_access()
474 return zend_verify_property_access(property_info, zobj->ce) ? SUCCESS : FAILURE; in zend_check_property_access()
483 static zend_long *zend_get_property_guard(zend_object *zobj, zend_string *member) /* {{{ */ in zend_get_property_guard() argument
488 ZEND_ASSERT(GC_FLAGS(zobj) & IS_OBJ_USE_GUARDS); in zend_get_property_guard()
489 if (GC_FLAGS(zobj) & IS_OBJ_HAS_GUARDS) { in zend_get_property_guard()
490 guards = Z_PTR(zobj->properties_table[zobj->ce->default_properties_count]); in zend_get_property_guard()
498 Z_PTR(zobj->properties_table[zobj->ce->default_properties_count]) = guards; in zend_get_property_guard()
499 GC_FLAGS(zobj) |= IS_OBJ_HAS_GUARDS; in zend_get_property_guard()
509 zend_object *zobj; in zend_std_read_property() local
515 zobj = Z_OBJ_P(object); in zend_std_read_property()
529 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (type == BP_VAR_IS) || (zobj in zend_std_read_property()
533 retval = OBJ_PROP(zobj, property_offset); in zend_std_read_property()
537 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_read_property()
538 retval = zend_hash_find(zobj->properties, Z_STR_P(member)); in zend_std_read_property()
549 if ((type == BP_VAR_IS) && zobj->ce->__isset) { in zend_std_read_property()
551 guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_read_property()
577 if (zobj->ce->__get) { in zend_std_read_property()
579 guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_read_property()
596 …rect modification of overloaded property %s::$%s has no effect", ZSTR_VAL(zobj->ce->name), Z_STRVA… in zend_std_read_property()
623 zend_error(E_NOTICE,"Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), Z_STRVAL_P(member)); in zend_std_read_property()
638 zend_object *zobj; in zend_std_write_property() local
643 zobj = Z_OBJ_P(object); in zend_std_write_property()
652 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (zobj->ce->__set != NULL), c… in zend_std_write_property()
656 variable_ptr = OBJ_PROP(zobj, property_offset); in zend_std_write_property()
660 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_write_property()
661 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_write_property()
662 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_write_property()
663 GC_REFCOUNT(zobj->properties)--; in zend_std_write_property()
665 zobj->properties = zend_array_dup(zobj->properties); in zend_std_write_property()
667 if ((variable_ptr = zend_hash_find(zobj->properties, Z_STR_P(member))) != NULL) { in zend_std_write_property()
678 if (zobj->ce->__set) { in zend_std_write_property()
679 zend_long *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_write_property()
718 ZVAL_COPY_VALUE(OBJ_PROP(zobj, property_offset), value); in zend_std_write_property()
720 if (!zobj->properties) { in zend_std_write_property()
721 rebuild_object_properties(zobj); in zend_std_write_property()
723 zend_hash_add_new(zobj->properties, Z_STR_P(member), value); in zend_std_write_property()
842 zend_object *zobj; in zend_std_get_property_ptr_ptr() local
847 zobj = Z_OBJ_P(object); in zend_std_get_property_ptr_ptr()
858 property_offset = zend_get_property_offset(zobj->ce, name, (zobj->ce->__get != NULL), cache_slot); in zend_std_get_property_ptr_ptr()
862 retval = OBJ_PROP(zobj, property_offset); in zend_std_get_property_ptr_ptr()
864 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
865 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) { in zend_std_get_property_ptr_ptr()
870 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
878 if (EXPECTED(zobj->properties)) { in zend_std_get_property_ptr_ptr()
879 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_get_property_ptr_ptr()
880 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_get_property_ptr_ptr()
881 GC_REFCOUNT(zobj->properties)--; in zend_std_get_property_ptr_ptr()
883 zobj->properties = zend_array_dup(zobj->properties); in zend_std_get_property_ptr_ptr()
885 if (EXPECTED((retval = zend_hash_find(zobj->properties, name)) != NULL)) { in zend_std_get_property_ptr_ptr()
892 if (EXPECTED(!zobj->ce->__get) || in zend_std_get_property_ptr_ptr()
893 UNEXPECTED((*zend_get_property_guard(zobj, name)) & IN_GET)) { in zend_std_get_property_ptr_ptr()
894 if (UNEXPECTED(!zobj->properties)) { in zend_std_get_property_ptr_ptr()
895 rebuild_object_properties(zobj); in zend_std_get_property_ptr_ptr()
897 retval = zend_hash_update(zobj->properties, name, &EG(uninitialized_zval)); in zend_std_get_property_ptr_ptr()
901 zend_error(E_NOTICE, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name)); in zend_std_get_property_ptr_ptr()
916 zend_object *zobj; in zend_std_unset_property() local
920 zobj = Z_OBJ_P(object); in zend_std_unset_property()
929 …property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), (zobj->ce->__unset != NULL),… in zend_std_unset_property()
933 zval *slot = OBJ_PROP(zobj, property_offset); in zend_std_unset_property()
938 if (zobj->properties) { in zend_std_unset_property()
939 zobj->properties->u.v.flags |= HASH_FLAG_HAS_EMPTY_IND; in zend_std_unset_property()
943 } else if (EXPECTED(zobj->properties != NULL)) { in zend_std_unset_property()
944 if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { in zend_std_unset_property()
945 if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { in zend_std_unset_property()
946 GC_REFCOUNT(zobj->properties)--; in zend_std_unset_property()
948 zobj->properties = zend_array_dup(zobj->properties); in zend_std_unset_property()
950 if (EXPECTED(zend_hash_del(zobj->properties, Z_STR_P(member)) != FAILURE)) { in zend_std_unset_property()
959 if (zobj->ce->__unset) { in zend_std_unset_property()
960 zend_long *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_unset_property()
1139 zend_object *zobj = *obj_ptr; in zend_std_get_method() local
1155 if (UNEXPECTED((func = zend_hash_find(&zobj->ce->function_table, lc_method_name)) == NULL)) { in zend_std_get_method()
1159 if (zobj->ce->__call) { in zend_std_get_method()
1160 return zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1174 updated_fbc = zend_check_private_int(fbc, zobj->ce, lc_method_name); in zend_std_get_method()
1178 if (zobj->ce->__call) { in zend_std_get_method()
1179 fbc = zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1205 if (zobj->ce->__call) { in zend_std_get_method()
1206 fbc = zend_get_user_call_function(zobj->ce, method_name); in zend_std_get_method()
1373 ZEND_API union _zend_function *zend_std_get_constructor(zend_object *zobj) /* {{{ */ in zend_std_get_constructor() argument
1375 zend_function *constructor = zobj->ce->constructor; in zend_std_get_constructor()
1481 zend_object *zobj; in zend_std_has_property() local
1487 zobj = Z_OBJ_P(object); in zend_std_has_property()
1496 property_offset = zend_get_property_offset(zobj->ce, Z_STR_P(member), 1, cache_slot); in zend_std_has_property()
1500 value = OBJ_PROP(zobj, property_offset); in zend_std_has_property()
1504 } else if (EXPECTED(zobj->properties != NULL) && in zend_std_has_property()
1505 (value = zend_hash_find(zobj->properties, Z_STR_P(member))) != NULL) { in zend_std_has_property()
1527 if ((has_set_exists != 2) && zobj->ce->__isset) { in zend_std_has_property()
1528 zend_long *guard = zend_get_property_guard(zobj, Z_STR_P(member)); in zend_std_has_property()
1546 if (EXPECTED(!EG(exception)) && zobj->ce->__get && !((*guard) & IN_GET)) { in zend_std_has_property()
1574 zend_string *zend_std_object_get_class_name(const zend_object *zobj) /* {{{ */ in zend_std_object_get_class_name() argument
1576 return zend_string_copy(zobj->ce->name); in zend_std_object_get_class_name()