Lines Matching refs:class_type

259 static int zend_implement_traversable(zend_class_entry *interface, zend_class_entry *class_type)  in zend_implement_traversable()  argument
263 if (class_type->ce_flags & ZEND_ACC_EXPLICIT_ABSTRACT_CLASS) { in zend_implement_traversable()
268 if (class_type->num_interfaces) { in zend_implement_traversable()
269 ZEND_ASSERT(class_type->ce_flags & ZEND_ACC_RESOLVED_INTERFACES); in zend_implement_traversable()
270 for (uint32_t i = 0; i < class_type->num_interfaces; i++) { in zend_implement_traversable()
271 …if (class_type->interfaces[i] == zend_ce_aggregate || class_type->interfaces[i] == zend_ce_iterato… in zend_implement_traversable()
277 zend_get_object_type_uc(class_type), in zend_implement_traversable()
278 ZSTR_VAL(class_type->name), in zend_implement_traversable()
287 static int zend_implement_aggregate(zend_class_entry *interface, zend_class_entry *class_type) in zend_implement_aggregate() argument
289 if (zend_class_implements_interface(class_type, zend_ce_iterator)) { in zend_implement_aggregate()
292 ZSTR_VAL(class_type->name)); in zend_implement_aggregate()
296 ZEND_ASSERT(!class_type->iterator_funcs_ptr && "Iterator funcs already set?"); in zend_implement_aggregate()
297 zend_class_iterator_funcs *funcs_ptr = class_type->type == ZEND_INTERNAL_CLASS in zend_implement_aggregate()
300 class_type->iterator_funcs_ptr = funcs_ptr; in zend_implement_aggregate()
304 &class_type->function_table, "getiterator", sizeof("getiterator") - 1); in zend_implement_aggregate()
306 if (class_type->get_iterator && class_type->get_iterator != zend_user_it_get_new_iterator) { in zend_implement_aggregate()
308 if (!class_type->parent || class_type->parent->get_iterator != class_type->get_iterator) { in zend_implement_aggregate()
309 ZEND_ASSERT(class_type->type == ZEND_INTERNAL_CLASS); in zend_implement_aggregate()
314 if (funcs_ptr->zf_new_iterator->common.scope != class_type) { in zend_implement_aggregate()
321 class_type->get_iterator = zend_user_it_get_new_iterator; in zend_implement_aggregate()
327 static int zend_implement_iterator(zend_class_entry *interface, zend_class_entry *class_type) in zend_implement_iterator() argument
329 if (zend_class_implements_interface(class_type, zend_ce_aggregate)) { in zend_implement_iterator()
332 ZSTR_VAL(class_type->name)); in zend_implement_iterator()
335 ZEND_ASSERT(!class_type->iterator_funcs_ptr && "Iterator funcs already set?"); in zend_implement_iterator()
336 zend_class_iterator_funcs *funcs_ptr = class_type->type == ZEND_INTERNAL_CLASS in zend_implement_iterator()
339 class_type->iterator_funcs_ptr = funcs_ptr; in zend_implement_iterator()
343 &class_type->function_table, "rewind", sizeof("rewind") - 1); in zend_implement_iterator()
345 &class_type->function_table, "valid", sizeof("valid") - 1); in zend_implement_iterator()
347 &class_type->function_table, ZSTR_KNOWN(ZEND_STR_KEY)); in zend_implement_iterator()
349 &class_type->function_table, "current", sizeof("current") - 1); in zend_implement_iterator()
351 &class_type->function_table, "next", sizeof("next") - 1); in zend_implement_iterator()
353 if (class_type->get_iterator && class_type->get_iterator != zend_user_it_get_iterator) { in zend_implement_iterator()
354 if (!class_type->parent || class_type->parent->get_iterator != class_type->get_iterator) { in zend_implement_iterator()
356 ZEND_ASSERT(class_type->type == ZEND_INTERNAL_CLASS); in zend_implement_iterator()
361 if (funcs_ptr->zf_rewind->common.scope != class_type && in zend_implement_iterator()
362 funcs_ptr->zf_valid->common.scope != class_type && in zend_implement_iterator()
363 funcs_ptr->zf_key->common.scope != class_type && in zend_implement_iterator()
364 funcs_ptr->zf_current->common.scope != class_type && in zend_implement_iterator()
365 funcs_ptr->zf_next->common.scope != class_type) { in zend_implement_iterator()
373 class_type->get_iterator = zend_user_it_get_iterator; in zend_implement_iterator()
379 static int zend_implement_arrayaccess(zend_class_entry *interface, zend_class_entry *class_type) in zend_implement_arrayaccess() argument
381 ZEND_ASSERT(!class_type->arrayaccess_funcs_ptr && "ArrayAccess funcs already set?"); in zend_implement_arrayaccess()
382 zend_class_arrayaccess_funcs *funcs_ptr = class_type->type == ZEND_INTERNAL_CLASS in zend_implement_arrayaccess()
385 class_type->arrayaccess_funcs_ptr = funcs_ptr; in zend_implement_arrayaccess()
388 &class_type->function_table, "offsetget", sizeof("offsetget") - 1); in zend_implement_arrayaccess()
390 &class_type->function_table, "offsetexists", sizeof("offsetexists") - 1); in zend_implement_arrayaccess()
392 &class_type->function_table, "offsetset", sizeof("offsetset") - 1); in zend_implement_arrayaccess()
394 &class_type->function_table, "offsetunset", sizeof("offsetunset") - 1); in zend_implement_arrayaccess()
460 static int zend_implement_serializable(zend_class_entry *interface, zend_class_entry *class_type) in zend_implement_serializable() argument
462 if (class_type->parent in zend_implement_serializable()
463 && (class_type->parent->serialize || class_type->parent->unserialize) in zend_implement_serializable()
464 && !zend_class_implements_interface(class_type->parent, zend_ce_serializable)) { in zend_implement_serializable()
467 if (!class_type->serialize) { in zend_implement_serializable()
468 class_type->serialize = zend_user_serialize; in zend_implement_serializable()
470 if (!class_type->unserialize) { in zend_implement_serializable()
471 class_type->unserialize = zend_user_unserialize; in zend_implement_serializable()
473 if (!(class_type->ce_flags & ZEND_ACC_EXPLICIT_ABSTRACT_CLASS) in zend_implement_serializable()
474 && (!class_type->__serialize || !class_type->__unserialize)) { in zend_implement_serializable()
475 …stead (or in addition, if support for old PHP versions is necessary)", ZSTR_VAL(class_type->name)); in zend_implement_serializable()