summaryrefslogtreecommitdiff
path: root/Zend/zend_interfaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_interfaces.c')
-rw-r--r--Zend/zend_interfaces.c32
1 files changed, 13 insertions, 19 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 0d5af66d92..275026f738 100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -436,7 +436,7 @@ static int zend_implement_serializable(zend_class_entry *interface, zend_class_e
typedef struct {
zend_object std;
zend_object_iterator *iter;
- zend_bool rewind_called;
+ bool rewind_called;
} zend_internal_iterator;
static zend_object *zend_internal_iterator_create(zend_class_entry *ce) {
@@ -596,31 +596,25 @@ ZEND_METHOD(InternalIterator, rewind) {
/* {{{ zend_register_interfaces */
ZEND_API void zend_register_interfaces(void)
{
- zend_class_entry ce;
+ zend_ce_traversable = register_class_Traversable();
+ zend_ce_traversable->interface_gets_implemented = zend_implement_traversable;
- REGISTER_MAGIC_INTERFACE(traversable, Traversable);
+ zend_ce_aggregate = register_class_IteratorAggregate(zend_ce_traversable);
+ zend_ce_aggregate->interface_gets_implemented = zend_implement_aggregate;
- REGISTER_MAGIC_INTERFACE(aggregate, IteratorAggregate);
- REGISTER_MAGIC_IMPLEMENT(aggregate, traversable);
+ zend_ce_iterator = register_class_Iterator(zend_ce_traversable);
+ zend_ce_iterator->interface_gets_implemented = zend_implement_iterator;
- REGISTER_MAGIC_INTERFACE(iterator, Iterator);
- REGISTER_MAGIC_IMPLEMENT(iterator, traversable);
+ zend_ce_serializable = register_class_Serializable();
+ zend_ce_serializable->interface_gets_implemented = zend_implement_serializable;
- REGISTER_MAGIC_INTERFACE(serializable, Serializable);
+ zend_ce_arrayaccess = register_class_ArrayAccess();
- INIT_CLASS_ENTRY(ce, "ArrayAccess", class_ArrayAccess_methods);
- zend_ce_arrayaccess = zend_register_internal_interface(&ce);
+ zend_ce_countable = register_class_Countable();
- INIT_CLASS_ENTRY(ce, "Countable", class_Countable_methods);
- zend_ce_countable = zend_register_internal_interface(&ce);
+ zend_ce_stringable = register_class_Stringable();
- INIT_CLASS_ENTRY(ce, "Stringable", class_Stringable_methods);
- zend_ce_stringable = zend_register_internal_interface(&ce);
-
- INIT_CLASS_ENTRY(ce, "InternalIterator", class_InternalIterator_methods);
- zend_ce_internal_iterator = zend_register_internal_class(&ce);
- zend_class_implements(zend_ce_internal_iterator, 1, zend_ce_iterator);
- zend_ce_internal_iterator->ce_flags |= ZEND_ACC_FINAL;
+ zend_ce_internal_iterator = register_class_InternalIterator(zend_ce_iterator);
zend_ce_internal_iterator->create_object = zend_internal_iterator_create;
zend_ce_internal_iterator->serialize = zend_class_serialize_deny;
zend_ce_internal_iterator->unserialize = zend_class_unserialize_deny;