Lines Matching refs:intern

106 	spl_SplObjectStorage *intern = spl_object_storage_from_obj(object);  in spl_SplObjectStorage_free_storage()  local
108 zend_object_std_dtor(&intern->std); in spl_SplObjectStorage_free_storage()
110 zend_hash_destroy(&intern->storage); in spl_SplObjectStorage_free_storage()
112 if (intern->gcdata != NULL) { in spl_SplObjectStorage_free_storage()
113 efree(intern->gcdata); in spl_SplObjectStorage_free_storage()
118 static int spl_object_storage_get_hash(zend_hash_key *key, spl_SplObjectStorage *intern, zval *this… in spl_object_storage_get_hash() argument
119 if (intern->fptr_get_hash) { in spl_object_storage_get_hash()
121 zend_call_method_with_1_params(this, intern->std.ce, &intern->fptr_get_hash, "getHash", &rv, obj); in spl_object_storage_get_hash()
142 static void spl_object_storage_free_hash(spl_SplObjectStorage *intern, zend_hash_key *key) { in spl_object_storage_free_hash() argument
156 static spl_SplObjectStorageElement* spl_object_storage_get(spl_SplObjectStorage *intern, zend_hash_… in spl_object_storage_get() argument
159 return zend_hash_find_ptr(&intern->storage, key->key); in spl_object_storage_get()
161 return zend_hash_index_find_ptr(&intern->storage, key->h); in spl_object_storage_get()
165 spl_SplObjectStorageElement *spl_object_storage_attach(spl_SplObjectStorage *intern, zval *this, zv… in spl_object_storage_attach() argument
169 if (spl_object_storage_get_hash(&key, intern, this, obj) == FAILURE) { in spl_object_storage_attach()
173 pelement = spl_object_storage_get(intern, &key); in spl_object_storage_attach()
182 spl_object_storage_free_hash(intern, &key); in spl_object_storage_attach()
193 …pelement = zend_hash_update_mem(&intern->storage, key.key, &element, sizeof(spl_SplObjectStorageEl… in spl_object_storage_attach()
195 …pelement = zend_hash_index_update_mem(&intern->storage, key.h, &element, sizeof(spl_SplObjectStora… in spl_object_storage_attach()
197 spl_object_storage_free_hash(intern, &key); in spl_object_storage_attach()
201 static int spl_object_storage_detach(spl_SplObjectStorage *intern, zval *this, zval *obj) /* {{{ */ in spl_object_storage_detach() argument
205 if (spl_object_storage_get_hash(&key, intern, this, obj) == FAILURE) { in spl_object_storage_detach()
209 ret = zend_hash_del(&intern->storage, key.key); in spl_object_storage_detach()
211 ret = zend_hash_index_del(&intern->storage, key.h); in spl_object_storage_detach()
213 spl_object_storage_free_hash(intern, &key); in spl_object_storage_detach()
218 void spl_object_storage_addall(spl_SplObjectStorage *intern, zval *this, spl_SplObjectStorage *othe… in spl_object_storage_addall() argument
222 spl_object_storage_attach(intern, this, &element->obj, &element->inf); in spl_object_storage_addall()
225 intern->index = 0; in spl_object_storage_addall()
230 spl_SplObjectStorage *intern; in spl_object_storage_new_ex() local
233 intern = emalloc(sizeof(spl_SplObjectStorage) + zend_object_properties_size(parent)); in spl_object_storage_new_ex()
234 memset(intern, 0, sizeof(spl_SplObjectStorage) - sizeof(zval)); in spl_object_storage_new_ex()
235 intern->pos = 0; in spl_object_storage_new_ex()
237 zend_object_std_init(&intern->std, class_type); in spl_object_storage_new_ex()
238 object_properties_init(&intern->std, class_type); in spl_object_storage_new_ex()
240 zend_hash_init(&intern->storage, 0, NULL, spl_object_storage_dtor, 0); in spl_object_storage_new_ex()
242 intern->std.handlers = &spl_handler_SplObjectStorage; in spl_object_storage_new_ex()
247intern->fptr_get_hash = zend_hash_str_find_ptr(&class_type->function_table, "gethash", sizeof("get… in spl_object_storage_new_ex()
248 if (intern->fptr_get_hash->common.scope == spl_ce_SplObjectStorage) { in spl_object_storage_new_ex()
249 intern->fptr_get_hash = NULL; in spl_object_storage_new_ex()
260 spl_object_storage_addall(intern, orig, other); in spl_object_storage_new_ex()
263 return &intern->std; in spl_object_storage_new_ex()
284 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(obj); in spl_object_storage_debug_info() local
299 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in spl_object_storage_debug_info()
323 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(obj); in spl_object_storage_get_gc() local
326 if (intern->storage.nNumOfElements * 2 > intern->gcdata_num) { in spl_object_storage_get_gc()
327 intern->gcdata_num = intern->storage.nNumOfElements * 2; in spl_object_storage_get_gc()
328 intern->gcdata = (zval*)erealloc(intern->gcdata, sizeof(zval) * intern->gcdata_num); in spl_object_storage_get_gc()
331 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in spl_object_storage_get_gc()
332 ZVAL_COPY_VALUE(&intern->gcdata[i++], &element->obj); in spl_object_storage_get_gc()
333 ZVAL_COPY_VALUE(&intern->gcdata[i++], &element->inf); in spl_object_storage_get_gc()
336 *table = intern->gcdata; in spl_object_storage_get_gc()
377 int spl_object_storage_contains(spl_SplObjectStorage *intern, zval *this, zval *obj) /* {{{ */ in spl_object_storage_contains() argument
381 if (spl_object_storage_get_hash(&key, intern, this, obj) == FAILURE) { in spl_object_storage_contains()
386 found = zend_hash_exists(&intern->storage, key.key); in spl_object_storage_contains()
388 found = zend_hash_index_exists(&intern->storage, key.h); in spl_object_storage_contains()
390 spl_object_storage_free_hash(intern, &key); in spl_object_storage_contains()
400 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
405 spl_object_storage_attach(intern, ZEND_THIS, obj, inf); in SPL_METHOD()
413 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
418 spl_object_storage_detach(intern, ZEND_THIS, obj); in SPL_METHOD()
420 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
421 intern->index = 0; in SPL_METHOD()
444 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
451 if (spl_object_storage_get_hash(&key, intern, ZEND_THIS, obj) == FAILURE) { in SPL_METHOD()
455 element = spl_object_storage_get(intern, &key); in SPL_METHOD()
456 spl_object_storage_free_hash(intern, &key); in SPL_METHOD()
472 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
481 spl_object_storage_addall(intern, ZEND_THIS, other); in SPL_METHOD()
483 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
491 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
503 if (spl_object_storage_detach(intern, ZEND_THIS, &element->obj) == FAILURE) { in SPL_METHOD()
508 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
509 intern->index = 0; in SPL_METHOD()
511 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
519 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
529 ZEND_HASH_FOREACH_PTR(&intern->storage, element) { in SPL_METHOD()
531 spl_object_storage_detach(intern, ZEND_THIS, &element->obj); in SPL_METHOD()
535 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
536 intern->index = 0; in SPL_METHOD()
538 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
547 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
552 RETURN_BOOL(spl_object_storage_contains(intern, ZEND_THIS, obj)); in SPL_METHOD()
559 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
570 ret = zend_hash_num_elements(&intern->storage); in SPL_METHOD()
572 ret = php_count_recursive(&intern->storage); in SPL_METHOD()
579 RETURN_LONG(zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
586 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
592 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
593 intern->index = 0; in SPL_METHOD()
600 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
606 RETURN_BOOL(zend_hash_has_more_elements_ex(&intern->storage, &intern->pos) == SUCCESS); in SPL_METHOD()
613 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
619 RETURN_LONG(intern->index); in SPL_METHOD()
627 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
633 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in SPL_METHOD()
644 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
650 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in SPL_METHOD()
661 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
668 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) == NULL) { in SPL_METHOD()
679 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
685 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in SPL_METHOD()
686 intern->index++; in SPL_METHOD()
693 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
709 ZVAL_LONG(&flags, zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
712 zend_hash_internal_pointer_reset_ex(&intern->storage, &pos); in SPL_METHOD()
714 while (zend_hash_has_more_elements_ex(&intern->storage, &pos) == SUCCESS) { in SPL_METHOD()
715 if ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &pos)) == NULL) { in SPL_METHOD()
724 zend_hash_move_forward_ex(&intern->storage, &pos); in SPL_METHOD()
749 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
821 if (spl_object_storage_get_hash(&key, intern, ZEND_THIS, &entry) == FAILURE) { in SPL_METHOD()
826 pelement = spl_object_storage_get(intern, &key); in SPL_METHOD()
827 spl_object_storage_free_hash(intern, &key); in SPL_METHOD()
836 element = spl_object_storage_attach(intern, ZEND_THIS, &entry, Z_ISUNDEF(inf)?NULL:&inf); in SPL_METHOD()
862 object_properties_load(&intern->std, Z_ARRVAL_P(pmembers)); in SPL_METHOD()
877 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
888 array_init_size(&tmp, 2 * zend_hash_num_elements(&intern->storage)); in SPL_METHOD()
889 ZEND_HASH_FOREACH_PTR(&intern->storage, elem) { in SPL_METHOD()
906 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
936 spl_object_storage_attach(intern, ZEND_THIS, key, val); in SPL_METHOD()
943 object_properties_load(&intern->std, Z_ARRVAL_P(members_zv)); in SPL_METHOD()
1031 spl_SplObjectStorage *intern; in SPL_METHOD() local
1038 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1039 intern->flags = flags; in SPL_METHOD()
1047 spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD() local
1052 RETURN_LONG(intern->flags); in SPL_METHOD()
1060 spl_SplObjectStorage *intern; in SPL_METHOD() local
1061 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1063 if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &intern->flags) == FAILURE) { in SPL_METHOD()
1073 spl_SplObjectStorage *intern; in SPL_METHOD() local
1080 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1090 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1091 while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL) { in SPL_METHOD()
1096 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1100 spl_object_storage_attach(intern, ZEND_THIS, iterator, info); in SPL_METHOD()
1108 spl_SplObjectStorage *intern; in SPL_METHOD() local
1112 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1118 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1119 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in SPL_METHOD()
1122 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1131 spl_SplObjectStorage *intern; in SPL_METHOD() local
1135 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1141 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1142 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in SPL_METHOD()
1145 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1154 spl_SplObjectStorage *intern; in SPL_METHOD() local
1159 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1165 if (!zend_hash_num_elements(&intern->storage)) { in SPL_METHOD()
1169 expect = (intern->flags & MIT_NEED_ALL) ? 1 : 0; in SPL_METHOD()
1171 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1172 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in SPL_METHOD()
1187 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in SPL_METHOD()
1194 static void spl_multiple_iterator_get_all(spl_SplObjectStorage *intern, int get_type, zval *return_… in spl_multiple_iterator_get_all() argument
1200 num_elements = zend_hash_num_elements(&intern->storage); in spl_multiple_iterator_get_all()
1207 zend_hash_internal_pointer_reset_ex(&intern->storage, &intern->pos); in spl_multiple_iterator_get_all()
1208 …while ((element = zend_hash_get_current_data_ptr_ex(&intern->storage, &intern->pos)) != NULL && !E… in spl_multiple_iterator_get_all()
1229 } else if (intern->flags & MIT_NEED_ALL) { in spl_multiple_iterator_get_all()
1240 if (intern->flags & MIT_KEYS_ASSOC) { in spl_multiple_iterator_get_all()
1257 zend_hash_move_forward_ex(&intern->storage, &intern->pos); in spl_multiple_iterator_get_all()
1266 spl_SplObjectStorage *intern; in SPL_METHOD() local
1267 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1273 spl_multiple_iterator_get_all(intern, SPL_MULTIPLE_ITERATOR_GET_ALL_CURRENT, return_value); in SPL_METHOD()
1281 spl_SplObjectStorage *intern; in SPL_METHOD() local
1282 intern = Z_SPLOBJSTORAGE_P(ZEND_THIS); in SPL_METHOD()
1288 spl_multiple_iterator_get_all(intern, SPL_MULTIPLE_ITERATOR_GET_ALL_KEY, return_value); in SPL_METHOD()