Lines Matching refs:hooked_iter

99 static bool zho_dynamic_it_init(zend_hooked_object_iterator *hooked_iter)  in zho_dynamic_it_init()  argument
101 if (hooked_iter->dynamic_prop_it != (uint32_t) -1) { in zho_dynamic_it_init()
105 zend_object *zobj = Z_OBJ_P(&hooked_iter->it.data); in zho_dynamic_it_init()
107 hooked_iter->dynamic_props_done = true; in zho_dynamic_it_init()
111hooked_iter->dynamic_prop_it = zend_hash_iterator_add(zobj->properties, zho_num_backed_props(zobj)… in zho_dynamic_it_init()
119 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_declared_it_fetch_current() local
121 zend_array *properties = Z_ARR(hooked_iter->declared_props); in zho_declared_it_fetch_current()
130 if (hooked_iter->by_ref in zho_declared_it_fetch_current()
137 …d_property_ex(prop_info->ce, zobj, prop_info->name, /* silent */ true, &hooked_iter->current_data); in zho_declared_it_fetch_current()
140 } else if (value != &hooked_iter->current_data) { in zho_declared_it_fetch_current()
141 ZVAL_COPY(&hooked_iter->current_data, value); in zho_declared_it_fetch_current()
148 if (!hooked_iter->by_ref) { in zho_declared_it_fetch_current()
158 ZVAL_COPY(&hooked_iter->current_data, property); in zho_declared_it_fetch_current()
160 zend_hash_get_current_key_zval(properties, &hooked_iter->current_key); in zho_declared_it_fetch_current()
165 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_dynamic_it_fetch_current() local
166 ZEND_ASSERT(hooked_iter->dynamic_prop_it != (uint32_t) -1); in zho_dynamic_it_fetch_current()
169 HashPosition pos = zend_hash_iterator_pos(hooked_iter->dynamic_prop_it, properties); in zho_dynamic_it_fetch_current()
172 if (hooked_iter->by_ref && Z_TYPE(bucket->val) != IS_REFERENCE) { in zho_dynamic_it_fetch_current()
176 ZVAL_COPY(&hooked_iter->current_data, &bucket->val); in zho_dynamic_it_fetch_current()
179 ZVAL_STR_COPY(&hooked_iter->current_key, bucket->key); in zho_dynamic_it_fetch_current()
181 ZVAL_LONG(&hooked_iter->current_key, bucket->h); in zho_dynamic_it_fetch_current()
187 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_fetch_current() local
188 if (Z_TYPE(hooked_iter->current_data) != IS_UNDEF) { in zho_it_fetch_current()
193 if (!hooked_iter->declared_props_done) { in zho_it_fetch_current()
195 } else if (!hooked_iter->dynamic_props_done && zho_dynamic_it_init(hooked_iter)) { in zho_it_fetch_current()
200 if (Z_TYPE(hooked_iter->current_data) != IS_UNDEF || EG(exception)) { in zho_it_fetch_current()
209 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_dtor() local
211 zval_ptr_dtor(&hooked_iter->declared_props); in zho_it_dtor()
212 zval_ptr_dtor_nogc(&hooked_iter->current_key); in zho_it_dtor()
213 zval_ptr_dtor(&hooked_iter->current_data); in zho_it_dtor()
214 if (hooked_iter->dynamic_prop_it != (uint32_t) -1) { in zho_it_dtor()
215 zend_hash_iterator_del(hooked_iter->dynamic_prop_it); in zho_it_dtor()
221 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_valid() local
223 return Z_TYPE(hooked_iter->current_data) != IS_UNDEF ? SUCCESS : FAILURE; in zho_it_valid()
228 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_get_current_data() local
230 return &hooked_iter->current_data; in zho_it_get_current_data()
235 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_get_current_key() local
237 ZVAL_COPY(key, &hooked_iter->current_key); in zho_it_get_current_key()
242 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_move_forward() local
244 zval_ptr_dtor(&hooked_iter->current_data); in zho_it_move_forward()
245 ZVAL_UNDEF(&hooked_iter->current_data); in zho_it_move_forward()
246 zval_ptr_dtor_nogc(&hooked_iter->current_key); in zho_it_move_forward()
247 ZVAL_UNDEF(&hooked_iter->current_key); in zho_it_move_forward()
249 if (!hooked_iter->declared_props_done) { in zho_it_move_forward()
250 zend_array *properties = Z_ARR(hooked_iter->declared_props); in zho_it_move_forward()
253 hooked_iter->declared_props_done = true; in zho_it_move_forward()
255 } else if (!hooked_iter->dynamic_props_done && zho_dynamic_it_init(hooked_iter)) { in zho_it_move_forward()
257 HashPosition pos = zend_hash_iterator_pos(hooked_iter->dynamic_prop_it, properties); in zho_it_move_forward()
259 EG(ht_iterators)[hooked_iter->dynamic_prop_it].pos = pos; in zho_it_move_forward()
261 hooked_iter->dynamic_props_done = true; in zho_it_move_forward()
268 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_rewind() local
270 zval_ptr_dtor(&hooked_iter->current_data); in zho_it_rewind()
271 ZVAL_UNDEF(&hooked_iter->current_data); in zho_it_rewind()
272 zval_ptr_dtor_nogc(&hooked_iter->current_key); in zho_it_rewind()
273 ZVAL_UNDEF(&hooked_iter->current_key); in zho_it_rewind()
275 hooked_iter->declared_props_done = false; in zho_it_rewind()
276 zend_array *properties = Z_ARR(hooked_iter->declared_props); in zho_it_rewind()
278 hooked_iter->dynamic_props_done = false; in zho_it_rewind()
279 if (hooked_iter->dynamic_prop_it != (uint32_t) -1) { in zho_it_rewind()
280 EG(ht_iterators)[hooked_iter->dynamic_prop_it].pos = zho_num_backed_props(Z_OBJ(iter->data)); in zho_it_rewind()
286 zend_hooked_object_iterator *hooked_iter = (zend_hooked_object_iterator*)iter; in zho_it_get_gc() local
289 zend_get_gc_buffer_add_zval(gc_buffer, &hooked_iter->declared_props); in zho_it_get_gc()
290 zend_get_gc_buffer_add_zval(gc_buffer, &hooked_iter->current_data); in zho_it_get_gc()