Lines Matching refs:intern

78 	spl_SplObjectStorage *intern = spl_object_storage_from_obj(object);  in spl_SplObjectStorage_free_storage()  local
80 zend_object_std_dtor(&intern->std); in spl_SplObjectStorage_free_storage()
82 zend_hash_destroy(&intern->storage); in spl_SplObjectStorage_free_storage()
85 static zend_result spl_object_storage_get_hash(zend_hash_key *key, spl_SplObjectStorage *intern, ze… in spl_object_storage_get_hash() argument
86 if (UNEXPECTED(intern->fptr_get_hash)) { in spl_object_storage_get_hash()
90 …zend_call_method_with_1_params(&intern->std, intern->std.ce, &intern->fptr_get_hash, "getHash", &r… in spl_object_storage_get_hash()
98 ZSTR_VAL(intern->std.ce->name), zend_zval_value_name(&rv)); in spl_object_storage_get_hash()
113 static void spl_object_storage_free_hash(spl_SplObjectStorage *intern, zend_hash_key *key) { in spl_object_storage_free_hash() argument
127 static spl_SplObjectStorageElement* spl_object_storage_get(spl_SplObjectStorage *intern, zend_hash_… in spl_object_storage_get() argument
130 return zend_hash_find_ptr(&intern->storage, key->key); in spl_object_storage_get()
132 return zend_hash_index_find_ptr(&intern->storage, key->h); in spl_object_storage_get()
150 static spl_SplObjectStorageElement *spl_object_storage_attach_handle(spl_SplObjectStorage *intern, … in spl_object_storage_attach_handle() argument
153 zval *entry_zv = zend_hash_index_lookup(&intern->storage, handle); in spl_object_storage_attach_handle()
155 ZEND_ASSERT(!(intern->flags & SOS_OVERRIDDEN_WRITE_DIMENSION)); in spl_object_storage_attach_handle()
177 static spl_SplObjectStorageElement *spl_object_storage_attach(spl_SplObjectStorage *intern, zend_ob… in spl_object_storage_attach() argument
179 if (EXPECTED(!(intern->flags & SOS_OVERRIDDEN_WRITE_DIMENSION))) { in spl_object_storage_attach()
180 return spl_object_storage_attach_handle(intern, obj, inf); in spl_object_storage_attach()
186 if (spl_object_storage_get_hash(&key, intern, obj) == FAILURE) { in spl_object_storage_attach()
190 pelement = spl_object_storage_get(intern, &key); in spl_object_storage_attach()
200 spl_object_storage_free_hash(intern, &key); in spl_object_storage_attach()
214 …pelement = zend_hash_update_mem(&intern->storage, key.key, &element, sizeof(spl_SplObjectStorageEl… in spl_object_storage_attach()
216 …pelement = zend_hash_index_update_mem(&intern->storage, key.h, &element, sizeof(spl_SplObjectStora… in spl_object_storage_attach()
218 spl_object_storage_free_hash(intern, &key); in spl_object_storage_attach()
222 static zend_result spl_object_storage_detach(spl_SplObjectStorage *intern, zend_object *obj) /* {{{… in spl_object_storage_detach() argument
224 if (EXPECTED(!(intern->flags & SOS_OVERRIDDEN_UNSET_DIMENSION))) { in spl_object_storage_detach()
225 return zend_hash_index_del(&intern->storage, obj->handle); in spl_object_storage_detach()
229 if (spl_object_storage_get_hash(&key, intern, obj) == FAILURE) { in spl_object_storage_detach()
233 ret = zend_hash_del(&intern->storage, key.key); in spl_object_storage_detach()
235 ret = zend_hash_index_del(&intern->storage, key.h); in spl_object_storage_detach()
237 spl_object_storage_free_hash(intern, &key); in spl_object_storage_detach()
242 static void spl_object_storage_addall(spl_SplObjectStorage *intern, spl_SplObjectStorage *other) { … in spl_object_storage_addall() argument
246 spl_object_storage_attach(intern, element->obj, &element->inf); in spl_object_storage_addall()
249 intern->index = 0; in spl_object_storage_addall()
257 spl_SplObjectStorage *intern; in spl_object_storage_new_ex() local
260 intern = emalloc(sizeof(spl_SplObjectStorage) + zend_object_properties_size(parent)); in spl_object_storage_new_ex()
261 memset(intern, 0, sizeof(spl_SplObjectStorage) - sizeof(zval)); in spl_object_storage_new_ex()
262 intern->pos = 0; in spl_object_storage_new_ex()
264 zend_object_std_init(&intern->std, class_type); in spl_object_storage_new_ex()
265 object_properties_init(&intern->std, class_type); in spl_object_storage_new_ex()
267 zend_hash_init(&intern->storage, 0, NULL, spl_object_storage_dtor, 0); in spl_object_storage_new_ex()
276 intern->fptr_get_hash = get_hash; in spl_object_storage_new_ex()
278 if (intern->fptr_get_hash != NULL || in spl_object_storage_new_ex()
281 intern->flags |= SOS_OVERRIDDEN_READ_DIMENSION; in spl_object_storage_new_ex()
284 if (intern->fptr_get_hash != NULL || in spl_object_storage_new_ex()
286 intern->flags |= SOS_OVERRIDDEN_WRITE_DIMENSION; in spl_object_storage_new_ex()
289 if (intern->fptr_get_hash != NULL || in spl_object_storage_new_ex()
291 intern->flags |= SOS_OVERRIDDEN_UNSET_DIMENSION; in spl_object_storage_new_ex()
302 spl_object_storage_addall(intern, other); in spl_object_storage_new_ex()
305 return &intern->std; in spl_object_storage_new_ex()
324 spl_SplObjectStorage *intern = spl_object_storage_from_obj(obj); in spl_object_storage_debug_info() local
338 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in spl_object_storage_debug_info()
361 spl_SplObjectStorage *intern = spl_object_storage_from_obj(obj); in spl_object_storage_get_gc() local
365 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in spl_object_storage_get_gc()
410 static bool spl_object_storage_contains(spl_SplObjectStorage *intern, zend_object *obj) /* {{{ */ in spl_object_storage_contains() argument
412 if (EXPECTED(!intern->fptr_get_hash)) { in spl_object_storage_contains()
413 return zend_hash_index_find(&intern->storage, obj->handle) != NULL; in spl_object_storage_contains()
416 if (spl_object_storage_get_hash(&key, intern, obj) == FAILURE) { in spl_object_storage_contains()
421 bool found = zend_hash_exists(&intern->storage, key.key); in spl_object_storage_contains()
433 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
440 spl_object_storage_attach(intern, obj, inf); in PHP_METHOD()
445 spl_SplObjectStorage *intern = spl_object_storage_from_obj(object); in spl_object_storage_has_dimension() local
446 …if (UNEXPECTED(offset == NULL || Z_TYPE_P(offset) != IS_OBJECT || (intern->flags & SOS_OVERRIDDEN_… in spl_object_storage_has_dimension()
450 …spl_SplObjectStorageElement *element = zend_hash_index_find_ptr(&intern->storage, Z_OBJ_HANDLE_P(o… in spl_object_storage_has_dimension()
464 spl_SplObjectStorage *intern = spl_object_storage_from_obj(object); in spl_object_storage_read_dimension() local
465 …if (UNEXPECTED(offset == NULL || Z_TYPE_P(offset) != IS_OBJECT || (intern->flags & SOS_OVERRIDDEN_… in spl_object_storage_read_dimension()
469 …spl_SplObjectStorageElement *element = zend_hash_index_find_ptr(&intern->storage, Z_OBJ_HANDLE_P(o… in spl_object_storage_read_dimension()
487 spl_SplObjectStorage *intern = spl_object_storage_from_obj(object); in spl_object_storage_write_dimension() local
488 …if (UNEXPECTED(offset == NULL || Z_TYPE_P(offset) != IS_OBJECT || (intern->flags & SOS_OVERRIDDEN_… in spl_object_storage_write_dimension()
492 spl_object_storage_attach_handle(intern, Z_OBJ_P(offset), inf); in spl_object_storage_write_dimension()
497 spl_SplObjectStorage *intern = spl_object_storage_from_obj(object); in spl_object_storage_unset_dimension() local
498 …if (UNEXPECTED(Z_TYPE_P(offset) != IS_OBJECT || (intern->flags & SOS_OVERRIDDEN_UNSET_DIMENSION)))… in spl_object_storage_unset_dimension()
502 zend_hash_index_del(&intern->storage, Z_OBJ_HANDLE_P(offset)); in spl_object_storage_unset_dimension()
509 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
514 spl_object_storage_detach(intern, obj); in PHP_METHOD()
516 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
517 intern->index = 0; in PHP_METHOD()
538 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
545 if (spl_object_storage_get_hash(&key, intern, obj) == FAILURE) { in PHP_METHOD()
549 element = spl_object_storage_get(intern, &key); in PHP_METHOD()
550 spl_object_storage_free_hash(intern, &key); in PHP_METHOD()
563 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
572 spl_object_storage_addall(intern, other); in PHP_METHOD()
574 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
581 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
593 if (spl_object_storage_detach(intern, element->obj) == FAILURE) { in PHP_METHOD()
598 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
599 intern->index = 0; in PHP_METHOD()
601 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
608 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
618 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in PHP_METHOD()
620 spl_object_storage_detach(intern, element->obj); in PHP_METHOD()
624 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
625 intern->index = 0; in PHP_METHOD()
627 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
635 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
640 RETURN_BOOL(spl_object_storage_contains(intern, obj)); in PHP_METHOD()
646 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
654 RETURN_LONG(php_count_recursive(&intern->storage)); in PHP_METHOD()
657 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
663 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
669 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
670 intern->index = 0; in PHP_METHOD()
676 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
682 RETURN_BOOL(zend_hash_has_more_elements_ex(&intern->storage, &intern->pos) == SUCCESS); in PHP_METHOD()
688 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
694 RETURN_LONG(intern->index); in PHP_METHOD()
701 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
707 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in PHP_METHOD()
718 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
724 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in PHP_METHOD()
734 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
741 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in PHP_METHOD()
751 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
757 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in PHP_METHOD()
758 intern->index++; in PHP_METHOD()
764 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
780 ZVAL_LONG(&flags, zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
783 zend_hash_internal_pointer_reset_ex(&intern->storage, &pos); in PHP_METHOD()
785 while (zend_hash_has_more_elements_ex(&intern->storage, &pos) == SUCCESS) { in PHP_METHOD()
787 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &pos)) == NULL) { in PHP_METHOD()
797 zend_hash_move_forward_ex(&intern->storage, &pos); in PHP_METHOD()
816 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
884 if (spl_object_storage_get_hash(&key, intern, Z_OBJ_P(entry)) == FAILURE) { in PHP_METHOD()
888 pelement = spl_object_storage_get(intern, &key); in PHP_METHOD()
889 spl_object_storage_free_hash(intern, &key); in PHP_METHOD()
898 element = spl_object_storage_attach(intern, Z_OBJ_P(entry), Z_ISUNDEF(inf)?NULL:&inf); in PHP_METHOD()
920 object_properties_load(&intern->std, Z_ARRVAL_P(pmembers)); in PHP_METHOD()
935 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
946 array_init_size(&tmp, 2 * zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
947 ZEND_HASH_FOREACH_PTR(&intern->storage, elem) { in PHP_METHOD()
958 zend_std_get_properties(&intern->std), /* always_duplicate */ 1)); in PHP_METHOD()
965 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
996 spl_object_storage_attach(intern, Z_OBJ_P(key), val); in PHP_METHOD()
1003 object_properties_load(&intern->std, Z_ARRVAL_P(members_zv)); in PHP_METHOD()
1023 spl_SplObjectStorage *intern; in PHP_METHOD() local
1030 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1031 intern->flags = flags; in PHP_METHOD()
1038 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
1043 RETURN_LONG(intern->flags); in PHP_METHOD()
1050 spl_SplObjectStorage *intern; in PHP_METHOD() local
1051 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1053 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in PHP_METHOD()
1062 spl_SplObjectStorage *intern; in PHP_METHOD() local
1075 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1086 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1087 while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL) { in PHP_METHOD()
1092 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1095 spl_object_storage_attach(intern, iterator, &zinfo); in PHP_METHOD()
1097 spl_object_storage_attach(intern, iterator, NULL); in PHP_METHOD()
1106 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
1111 spl_object_storage_detach(intern, Z_OBJ_P(iterator)); in PHP_METHOD()
1113 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1114 intern->index = 0; in PHP_METHOD()
1121 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
1126 RETURN_BOOL(spl_object_storage_contains(intern, Z_OBJ_P(iterator))); in PHP_METHOD()
1131 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD() local
1137 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in PHP_METHOD()
1143 spl_SplObjectStorage *intern; in PHP_METHOD() local
1146 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1152 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1153 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in PHP_METHOD()
1156 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1164 spl_SplObjectStorage *intern; in PHP_METHOD() local
1167 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1173 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1174 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in PHP_METHOD()
1177 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1185 spl_SplObjectStorage *intern; in PHP_METHOD() local
1190 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1196 if (!zend_hash_num_elements(&intern->storage)) { in PHP_METHOD()
1200 expect = (intern->flags & MIT_NEED_ALL) ? 1 : 0; in PHP_METHOD()
1202 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1203 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in PHP_METHOD()
1218 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in PHP_METHOD()
1225 static void spl_multiple_iterator_get_all(spl_SplObjectStorage *intern, int get_type, zval *return_… in spl_multiple_iterator_get_all() argument
1231 num_elements = zend_hash_num_elements(&intern->storage); in spl_multiple_iterator_get_all()
1240 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in spl_multiple_iterator_get_all()
1241 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in spl_multiple_iterator_get_all()
1262 } else if (intern->flags & MIT_NEED_ALL) { in spl_multiple_iterator_get_all()
1273 if (intern->flags & MIT_KEYS_ASSOC) { in spl_multiple_iterator_get_all()
1290 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in spl_multiple_iterator_get_all()
1298 spl_SplObjectStorage *intern; in PHP_METHOD() local
1299 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1305 spl_multiple_iterator_get_all(intern, SPL_MULTIPLE_ITERATOR_GET_ALL_CURRENT, return_value); in PHP_METHOD()
1312 spl_SplObjectStorage *intern; in PHP_METHOD() local
1313 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in PHP_METHOD()
1319 spl_multiple_iterator_get_all(intern, SPL_MULTIPLE_ITERATOR_GET_ALL_KEY, return_value); in PHP_METHOD()