]> granicus.if.org Git - php/commitdiff
Generate methods entries from stubs for ext/spl
authorMáté Kocsis <kocsismate@woohoolabs.com>
Sat, 25 Apr 2020 17:08:53 +0000 (19:08 +0200)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Sat, 25 Apr 2020 21:54:56 +0000 (23:54 +0200)
Closes GH-5458

26 files changed:
ext/spl/php_spl.c
ext/spl/php_spl.h
ext/spl/php_spl.stub.php
ext/spl/php_spl_arginfo.h
ext/spl/spl_array.c
ext/spl/spl_array.stub.php
ext/spl/spl_array_arginfo.h
ext/spl/spl_directory.c
ext/spl/spl_directory.stub.php
ext/spl/spl_directory_arginfo.h
ext/spl/spl_dllist.c
ext/spl/spl_dllist.stub.php
ext/spl/spl_dllist_arginfo.h
ext/spl/spl_fixedarray.c
ext/spl/spl_fixedarray.stub.php
ext/spl/spl_fixedarray_arginfo.h
ext/spl/spl_functions.h
ext/spl/spl_heap.c
ext/spl/spl_heap.stub.php
ext/spl/spl_heap_arginfo.h
ext/spl/spl_iterators.c
ext/spl/spl_iterators.stub.php
ext/spl/spl_iterators_arginfo.h
ext/spl/spl_observer.c
ext/spl/spl_observer.stub.php
ext/spl/spl_observer_arginfo.h

index 9ccb9da3a5058a37181f16d18a4c61fd91c430c0..759218e8021c79ec500a6a4e36d801ad12fd4877 100644 (file)
@@ -893,28 +893,6 @@ PHP_MINFO_FUNCTION(spl)
 }
 /* }}} */
 
-/* {{{ spl_functions
- */
-static const zend_function_entry spl_functions[] = {
-       PHP_FE(spl_classes,             arginfo_spl_classes)
-       PHP_FE(spl_autoload,            arginfo_spl_autoload)
-       PHP_FE(spl_autoload_extensions, arginfo_spl_autoload_extensions)
-       PHP_FE(spl_autoload_register,   arginfo_spl_autoload_register)
-       PHP_FE(spl_autoload_unregister, arginfo_spl_autoload_unregister)
-       PHP_FE(spl_autoload_functions,  arginfo_spl_autoload_functions)
-       PHP_FE(spl_autoload_call,       arginfo_spl_autoload_call)
-       PHP_FE(class_parents,           arginfo_class_parents)
-       PHP_FE(class_implements,        arginfo_class_implements)
-       PHP_FE(class_uses,              arginfo_class_uses)
-       PHP_FE(spl_object_hash,         arginfo_spl_object_hash)
-       PHP_FE(spl_object_id,           arginfo_spl_object_id)
-       PHP_FE(iterator_to_array,       arginfo_iterator_to_array)
-       PHP_FE(iterator_count,          arginfo_iterator_count)
-       PHP_FE(iterator_apply,          arginfo_iterator_apply)
-       PHP_FE_END
-};
-/* }}} */
-
 /* {{{ PHP_MINIT_FUNCTION(spl)
  */
 PHP_MINIT_FUNCTION(spl)
@@ -966,7 +944,7 @@ PHP_RSHUTDOWN_FUNCTION(spl) /* {{{ */
 zend_module_entry spl_module_entry = {
        STANDARD_MODULE_HEADER,
        "SPL",
-       spl_functions,
+       ext_functions,
        PHP_MINIT(spl),
        NULL,
        PHP_RINIT(spl),
index 61fc80ac1d0ac1d0b53614377cd6f06e7d7d64fa..a4aaba46903f4ab22dc9baa54bddd725cc6de95c 100644 (file)
@@ -63,11 +63,6 @@ ZEND_END_MODULE_GLOBALS(spl)
 ZEND_EXTERN_MODULE_GLOBALS(spl)
 #define SPL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(spl, v)
 
-PHP_FUNCTION(spl_classes);
-PHP_FUNCTION(class_parents);
-PHP_FUNCTION(class_implements);
-PHP_FUNCTION(class_uses);
-
 PHPAPI zend_string *php_spl_object_hash(zval *obj);
 
 #endif /* PHP_SPL_H */
index 1ff967358e70bc38cc871ac2168ce2c4d37546a9..8811e1913a2bef19b363a9723b269577606354a4 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 function class_implements($what, bool $autoload = true): array|false {}
 
 function class_parents($instance, bool $autoload = true): array|false {}
index 29e813b551a9e7f6747acde68d3ed26c7b394813..0b19431fd45a72dbce914bfbd139e28d385f5160 100644 (file)
@@ -63,3 +63,40 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_iterator_to_array, 0, 1, IS_ARRA
        ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, use_keys, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
+
+
+ZEND_FUNCTION(class_implements);
+ZEND_FUNCTION(class_parents);
+ZEND_FUNCTION(class_uses);
+ZEND_FUNCTION(spl_autoload);
+ZEND_FUNCTION(spl_autoload_call);
+ZEND_FUNCTION(spl_autoload_extensions);
+ZEND_FUNCTION(spl_autoload_functions);
+ZEND_FUNCTION(spl_autoload_register);
+ZEND_FUNCTION(spl_autoload_unregister);
+ZEND_FUNCTION(spl_classes);
+ZEND_FUNCTION(spl_object_hash);
+ZEND_FUNCTION(spl_object_id);
+ZEND_FUNCTION(iterator_apply);
+ZEND_FUNCTION(iterator_count);
+ZEND_FUNCTION(iterator_to_array);
+
+
+static const zend_function_entry ext_functions[] = {
+       ZEND_FE(class_implements, arginfo_class_implements)
+       ZEND_FE(class_parents, arginfo_class_parents)
+       ZEND_FE(class_uses, arginfo_class_uses)
+       ZEND_FE(spl_autoload, arginfo_spl_autoload)
+       ZEND_FE(spl_autoload_call, arginfo_spl_autoload_call)
+       ZEND_FE(spl_autoload_extensions, arginfo_spl_autoload_extensions)
+       ZEND_FE(spl_autoload_functions, arginfo_spl_autoload_functions)
+       ZEND_FE(spl_autoload_register, arginfo_spl_autoload_register)
+       ZEND_FE(spl_autoload_unregister, arginfo_spl_autoload_unregister)
+       ZEND_FE(spl_classes, arginfo_spl_classes)
+       ZEND_FE(spl_object_hash, arginfo_spl_object_hash)
+       ZEND_FE(spl_object_id, arginfo_spl_object_id)
+       ZEND_FE(iterator_apply, arginfo_iterator_apply)
+       ZEND_FE(iterator_count, arginfo_iterator_count)
+       ZEND_FE(iterator_to_array, arginfo_iterator_to_array)
+       ZEND_FE_END
+};
index 7b86de804e9da3c349dd1bb0178e4364d2755e54..ab263b6195f6c7ae48198bd69f715b46cd9df8ce 100644 (file)
@@ -698,7 +698,7 @@ static int spl_array_has_dimension(zend_object *object, zval *offset, int check_
 /* {{{ proto bool ArrayObject::offsetExists(mixed $index)
        proto bool ArrayIterator::offsetExists(mixed $index)
    Returns whether the requested $index exists. */
-SPL_METHOD(Array, offsetExists)
+PHP_METHOD(ArrayObject, offsetExists)
 {
        zval *index;
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &index) == FAILURE) {
@@ -710,7 +710,7 @@ SPL_METHOD(Array, offsetExists)
 /* {{{ proto mixed ArrayObject::offsetGet(mixed $index)
        proto mixed ArrayIterator::offsetGet(mixed $index)
    Returns the value at the specified $index. */
-SPL_METHOD(Array, offsetGet)
+PHP_METHOD(ArrayObject, offsetGet)
 {
        zval *value, *index;
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &index) == FAILURE) {
@@ -725,7 +725,7 @@ SPL_METHOD(Array, offsetGet)
 /* {{{ proto void ArrayObject::offsetSet(mixed $index, mixed $newval)
        proto void ArrayIterator::offsetSet(mixed $index, mixed $newval)
    Sets the value at the specified $index to $newval. */
-SPL_METHOD(Array, offsetSet)
+PHP_METHOD(ArrayObject, offsetSet)
 {
        zval *index, *value;
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "zz", &index, &value) == FAILURE) {
@@ -749,7 +749,7 @@ void spl_array_iterator_append(zval *object, zval *append_value) /* {{{ */
 /* {{{ proto void ArrayObject::append(mixed $newval)
        proto void ArrayIterator::append(mixed $newval)
    Appends the value (cannot be called for objects). */
-SPL_METHOD(Array, append)
+PHP_METHOD(ArrayObject, append)
 {
        zval *value;
 
@@ -762,7 +762,7 @@ SPL_METHOD(Array, append)
 /* {{{ proto void ArrayObject::offsetUnset(mixed $index)
        proto void ArrayIterator::offsetUnset(mixed $index)
    Unsets the value at the specified $index. */
-SPL_METHOD(Array, offsetUnset)
+PHP_METHOD(ArrayObject, offsetUnset)
 {
        zval *index;
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &index) == FAILURE) {
@@ -774,7 +774,7 @@ SPL_METHOD(Array, offsetUnset)
 /* {{{ proto array ArrayObject::getArrayCopy()
       proto array ArrayIterator::getArrayCopy()
    Return a copy of the contained array */
-SPL_METHOD(Array, getArrayCopy)
+PHP_METHOD(ArrayObject, getArrayCopy)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1185,7 +1185,7 @@ zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object,
 
 /* {{{ proto ArrayObject::__construct([array|object ar = array() [, int flags = 0 [, string iterator_class = "ArrayIterator"]]])
    Constructs a new array object from an array or object. */
-SPL_METHOD(Array, __construct)
+PHP_METHOD(ArrayObject, __construct)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern;
@@ -1215,7 +1215,7 @@ SPL_METHOD(Array, __construct)
 
 /* {{{ proto ArrayIterator::__construct([array|object ar = array() [, int flags = 0]])
    Constructs a new array iterator from an array or object. */
-SPL_METHOD(ArrayIterator, __construct)
+PHP_METHOD(ArrayIterator, __construct)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern;
@@ -1240,7 +1240,7 @@ SPL_METHOD(ArrayIterator, __construct)
 
 /* {{{ proto void ArrayObject::setIteratorClass(string iterator_class)
    Set the class used in getIterator. */
-SPL_METHOD(Array, setIteratorClass)
+PHP_METHOD(ArrayObject, setIteratorClass)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1256,7 +1256,7 @@ SPL_METHOD(Array, setIteratorClass)
 
 /* {{{ proto string ArrayObject::getIteratorClass()
    Get the class used in getIterator. */
-SPL_METHOD(Array, getIteratorClass)
+PHP_METHOD(ArrayObject, getIteratorClass)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1272,7 +1272,7 @@ SPL_METHOD(Array, getIteratorClass)
 
 /* {{{ proto int ArrayObject::getFlags()
    Get flags */
-SPL_METHOD(Array, getFlags)
+PHP_METHOD(ArrayObject, getFlags)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1287,7 +1287,7 @@ SPL_METHOD(Array, getFlags)
 
 /* {{{ proto void ArrayObject::setFlags(int flags)
    Set flags */
-SPL_METHOD(Array, setFlags)
+PHP_METHOD(ArrayObject, setFlags)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1303,7 +1303,7 @@ SPL_METHOD(Array, setFlags)
 
 /* {{{ proto Array|Object ArrayObject::exchangeArray(Array|Object input = array())
    Replace the referenced array or object with a new one and return the old one (right now copy - to be changed) */
-SPL_METHOD(Array, exchangeArray)
+PHP_METHOD(ArrayObject, exchangeArray)
 {
        zval *object = ZEND_THIS, *array;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1324,7 +1324,7 @@ SPL_METHOD(Array, exchangeArray)
 
 /* {{{ proto ArrayIterator ArrayObject::getIterator()
    Create a new iterator from a ArrayObject instance */
-SPL_METHOD(Array, getIterator)
+PHP_METHOD(ArrayObject, getIterator)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1339,7 +1339,7 @@ SPL_METHOD(Array, getIterator)
 
 /* {{{ proto void ArrayIterator::rewind()
    Rewind array back to the start */
-SPL_METHOD(Array, rewind)
+PHP_METHOD(ArrayIterator, rewind)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1354,7 +1354,7 @@ SPL_METHOD(Array, rewind)
 
 /* {{{ proto void ArrayIterator::seek(int $position)
    Seek to position. */
-SPL_METHOD(Array, seek)
+PHP_METHOD(ArrayIterator, seek)
 {
        zend_long opos, position;
        zval *object = ZEND_THIS;
@@ -1424,7 +1424,7 @@ int spl_array_object_count_elements(zend_object *object, zend_long *count) /* {{
 /* {{{ proto int ArrayObject::count()
        proto int ArrayIterator::count()
    Return the number of elements in the Iterator. */
-SPL_METHOD(Array, count)
+PHP_METHOD(ArrayObject, count)
 {
        spl_array_object *intern = Z_SPLARRAY_P(ZEND_THIS);
 
@@ -1488,7 +1488,7 @@ exit:
 } /* }}} */
 
 #define SPL_ARRAY_METHOD(cname, fname, use_arg) \
-SPL_METHOD(cname, fname) \
+PHP_METHOD(cname, fname) \
 { \
        spl_array_method(INTERNAL_FUNCTION_PARAM_PASSTHRU, #fname, sizeof(#fname)-1, use_arg); \
 }
@@ -1496,36 +1496,36 @@ SPL_METHOD(cname, fname) \
 /* {{{ proto int ArrayObject::asort([int $sort_flags = SORT_REGULAR ])
        proto int ArrayIterator::asort([int $sort_flags = SORT_REGULAR ])
    Sort the entries by values. */
-SPL_ARRAY_METHOD(Array, asort, SPL_ARRAY_METHOD_MAY_USER_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, asort, SPL_ARRAY_METHOD_MAY_USER_ARG) /* }}} */
 
 /* {{{ proto int ArrayObject::ksort([int $sort_flags = SORT_REGULAR ])
        proto int ArrayIterator::ksort([int $sort_flags = SORT_REGULAR ])
    Sort the entries by key. */
-SPL_ARRAY_METHOD(Array, ksort, SPL_ARRAY_METHOD_MAY_USER_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, ksort, SPL_ARRAY_METHOD_MAY_USER_ARG) /* }}} */
 
 /* {{{ proto int ArrayObject::uasort(callback cmp_function)
        proto int ArrayIterator::uasort(callback cmp_function)
    Sort the entries by values user defined function. */
-SPL_ARRAY_METHOD(Array, uasort, SPL_ARRAY_METHOD_USE_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, uasort, SPL_ARRAY_METHOD_USE_ARG) /* }}} */
 
 /* {{{ proto int ArrayObject::uksort(callback cmp_function)
        proto int ArrayIterator::uksort(callback cmp_function)
    Sort the entries by key using user defined function. */
-SPL_ARRAY_METHOD(Array, uksort, SPL_ARRAY_METHOD_USE_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, uksort, SPL_ARRAY_METHOD_USE_ARG) /* }}} */
 
 /* {{{ proto int ArrayObject::natsort()
        proto int ArrayIterator::natsort()
    Sort the entries by values using "natural order" algorithm. */
-SPL_ARRAY_METHOD(Array, natsort, SPL_ARRAY_METHOD_NO_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, natsort, SPL_ARRAY_METHOD_NO_ARG) /* }}} */
 
 /* {{{ proto int ArrayObject::natcasesort()
        proto int ArrayIterator::natcasesort()
    Sort the entries by key using case insensitive "natural order" algorithm. */
-SPL_ARRAY_METHOD(Array, natcasesort, SPL_ARRAY_METHOD_NO_ARG) /* }}} */
+SPL_ARRAY_METHOD(ArrayObject, natcasesort, SPL_ARRAY_METHOD_NO_ARG) /* }}} */
 
 /* {{{ proto mixed|NULL ArrayIterator::current()
    Return current array entry */
-SPL_METHOD(Array, current)
+PHP_METHOD(ArrayIterator, current)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1551,7 +1551,7 @@ SPL_METHOD(Array, current)
 
 /* {{{ proto mixed|NULL ArrayIterator::key()
    Return current array key */
-SPL_METHOD(Array, key)
+PHP_METHOD(ArrayIterator, key)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -1571,7 +1571,7 @@ void spl_array_iterator_key(zval *object, zval *return_value) /* {{{ */
 
 /* {{{ proto void ArrayIterator::next()
    Move to next entry */
-SPL_METHOD(Array, next)
+PHP_METHOD(ArrayIterator, next)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1587,7 +1587,7 @@ SPL_METHOD(Array, next)
 
 /* {{{ proto bool ArrayIterator::valid()
    Check whether array contains more entries */
-SPL_METHOD(Array, valid)
+PHP_METHOD(ArrayIterator, valid)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1603,7 +1603,7 @@ SPL_METHOD(Array, valid)
 
 /* {{{ proto bool RecursiveArrayIterator::hasChildren()
    Check whether current element has children (e.g. is an array) */
-SPL_METHOD(Array, hasChildren)
+PHP_METHOD(RecursiveArrayIterator, hasChildren)
 {
        zval *object = ZEND_THIS, *entry;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1628,7 +1628,7 @@ SPL_METHOD(Array, hasChildren)
 
 /* {{{ proto object RecursiveArrayIterator::getChildren()
    Create a sub iterator for the current element (same class as $this) */
-SPL_METHOD(Array, getChildren)
+PHP_METHOD(RecursiveArrayIterator, getChildren)
 {
        zval *object = ZEND_THIS, *entry, flags;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1665,7 +1665,7 @@ SPL_METHOD(Array, getChildren)
 
 /* {{{ proto string ArrayObject::serialize()
    Serialize the object */
-SPL_METHOD(Array, serialize)
+PHP_METHOD(ArrayObject, serialize)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1709,7 +1709,7 @@ SPL_METHOD(Array, serialize)
 /* {{{ proto void ArrayObject::unserialize(string serialized)
  * unserialize the object
  */
-SPL_METHOD(Array, unserialize)
+PHP_METHOD(ArrayObject, unserialize)
 {
        zval *object = ZEND_THIS;
        spl_array_object *intern = Z_SPLARRAY_P(object);
@@ -1821,7 +1821,7 @@ outexcept:
 } /* }}} */
 
 /* {{{ proto array ArrayObject::__serialize() */
-SPL_METHOD(Array, __serialize)
+PHP_METHOD(ArrayObject, __serialize)
 {
        spl_array_object *intern = Z_SPLARRAY_P(ZEND_THIS);
        zval tmp;
@@ -1861,7 +1861,7 @@ SPL_METHOD(Array, __serialize)
 
 
 /* {{{ proto void ArrayObject::__unserialize(array data) */
-SPL_METHOD(Array, __unserialize)
+PHP_METHOD(ArrayObject, __unserialize)
 {
        spl_array_object *intern = Z_SPLARRAY_P(ZEND_THIS);
        HashTable *data;
@@ -1922,7 +1922,7 @@ SPL_METHOD(Array, __unserialize)
 /* }}} */
 
 /* {{{ proto void Array::__debugInfo() */
-SPL_METHOD(Array, __debugInfo)
+PHP_METHOD(ArrayObject, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -1931,79 +1931,10 @@ SPL_METHOD(Array, __debugInfo)
        RETURN_ARR(spl_array_get_debug_info(Z_OBJ_P(ZEND_THIS)));
 } /* }}} */
 
-static const zend_function_entry spl_funcs_ArrayObject[] = {
-       SPL_ME(Array, __construct,      arginfo_class_ArrayObject___construct,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetExists,     arginfo_class_ArrayObject_offsetExists,         ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetGet,        arginfo_class_ArrayObject_offsetGet,            ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetSet,        arginfo_class_ArrayObject_offsetSet,            ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetUnset,      arginfo_class_ArrayObject_offsetUnset,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, append,           arginfo_class_ArrayObject_append,                       ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getArrayCopy,     arginfo_class_ArrayObject_getArrayCopy,         ZEND_ACC_PUBLIC)
-       SPL_ME(Array, count,            arginfo_class_ArrayObject_count,                        ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getFlags,         arginfo_class_ArrayObject_getFlags,                     ZEND_ACC_PUBLIC)
-       SPL_ME(Array, setFlags,         arginfo_class_ArrayObject_setFlags,                     ZEND_ACC_PUBLIC)
-       SPL_ME(Array, asort,            arginfo_class_ArrayObject_asort,                        ZEND_ACC_PUBLIC)
-       SPL_ME(Array, ksort,            arginfo_class_ArrayObject_ksort,                        ZEND_ACC_PUBLIC)
-       SPL_ME(Array, uasort,           arginfo_class_ArrayObject_uasort,                       ZEND_ACC_PUBLIC)
-       SPL_ME(Array, uksort,           arginfo_class_ArrayObject_uksort,                       ZEND_ACC_PUBLIC)
-       SPL_ME(Array, natsort,          arginfo_class_ArrayObject_natsort,                      ZEND_ACC_PUBLIC)
-       SPL_ME(Array, natcasesort,      arginfo_class_ArrayObject_natcasesort,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, unserialize,      arginfo_class_ArrayObject_unserialize,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, serialize,        arginfo_class_ArrayObject_serialize,            ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __unserialize,    arginfo_class_ArrayObject___unserialize,        ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __serialize,      arginfo_class_ArrayObject___serialize,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __debugInfo,      arginfo_class_ArrayObject___debugInfo,          ZEND_ACC_PUBLIC)
-       /* ArrayObject specific */
-       SPL_ME(Array, getIterator,      arginfo_class_ArrayObject_getIterator,          ZEND_ACC_PUBLIC)
-       SPL_ME(Array, exchangeArray,    arginfo_class_ArrayObject_exchangeArray,        ZEND_ACC_PUBLIC)
-       SPL_ME(Array, setIteratorClass, arginfo_class_ArrayObject_setIteratorClass,     ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getIteratorClass, arginfo_class_ArrayObject_getIteratorClass,     ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_ArrayIterator[] = {
-       SPL_ME(ArrayIterator, __construct, arginfo_class_ArrayIterator___construct,             ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetExists,     arginfo_class_ArrayIterator_offsetExists,               ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetGet,        arginfo_class_ArrayIterator_offsetGet,                  ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetSet,        arginfo_class_ArrayIterator_offsetSet,                  ZEND_ACC_PUBLIC)
-       SPL_ME(Array, offsetUnset,      arginfo_class_ArrayIterator_offsetUnset,                ZEND_ACC_PUBLIC)
-       SPL_ME(Array, append,           arginfo_class_ArrayIterator_append,                             ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getArrayCopy,     arginfo_class_ArrayIterator_getArrayCopy,               ZEND_ACC_PUBLIC)
-       SPL_ME(Array, count,            arginfo_class_ArrayIterator_count,                              ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getFlags,         arginfo_class_ArrayIterator_getFlags,                   ZEND_ACC_PUBLIC)
-       SPL_ME(Array, setFlags,         arginfo_class_ArrayIterator_setFlags,                   ZEND_ACC_PUBLIC)
-       SPL_ME(Array, asort,            arginfo_class_ArrayIterator_asort,                              ZEND_ACC_PUBLIC)
-       SPL_ME(Array, ksort,            arginfo_class_ArrayIterator_ksort,                              ZEND_ACC_PUBLIC)
-       SPL_ME(Array, uasort,           arginfo_class_ArrayIterator_uasort,                             ZEND_ACC_PUBLIC)
-       SPL_ME(Array, uksort,           arginfo_class_ArrayIterator_uksort,                             ZEND_ACC_PUBLIC)
-       SPL_ME(Array, natsort,          arginfo_class_ArrayIterator_natsort,                    ZEND_ACC_PUBLIC)
-       SPL_ME(Array, natcasesort,      arginfo_class_ArrayIterator_natcasesort,                ZEND_ACC_PUBLIC)
-       SPL_ME(Array, unserialize,      arginfo_class_ArrayIterator_unserialize,                ZEND_ACC_PUBLIC)
-       SPL_ME(Array, serialize,        arginfo_class_ArrayIterator_serialize,                  ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __unserialize,    arginfo_class_ArrayIterator___unserialize,              ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __serialize,      arginfo_class_ArrayIterator___serialize,                ZEND_ACC_PUBLIC)
-       SPL_ME(Array, __debugInfo,      arginfo_class_ArrayIterator___debugInfo,                ZEND_ACC_PUBLIC)
-       /* ArrayIterator specific */
-       SPL_ME(Array, rewind,           arginfo_class_ArrayIterator_rewind,                             ZEND_ACC_PUBLIC)
-       SPL_ME(Array, current,          arginfo_class_ArrayIterator_current,                    ZEND_ACC_PUBLIC)
-       SPL_ME(Array, key,              arginfo_class_ArrayIterator_key,                                ZEND_ACC_PUBLIC)
-       SPL_ME(Array, next,             arginfo_class_ArrayIterator_next,                               ZEND_ACC_PUBLIC)
-       SPL_ME(Array, valid,            arginfo_class_ArrayIterator_valid,                              ZEND_ACC_PUBLIC)
-       SPL_ME(Array, seek,             arginfo_class_ArrayIterator_seek,                               ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_RecursiveArrayIterator[] = {
-       SPL_ME(Array, hasChildren,   arginfo_class_RecursiveArrayIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(Array, getChildren,   arginfo_class_RecursiveArrayIterator_getChildren, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-/* }}} */
-
 /* {{{ PHP_MINIT_FUNCTION(spl_array) */
 PHP_MINIT_FUNCTION(spl_array)
 {
-       REGISTER_SPL_STD_CLASS_EX(ArrayObject, spl_array_object_new, spl_funcs_ArrayObject);
+       REGISTER_SPL_STD_CLASS_EX(ArrayObject, spl_array_object_new, class_ArrayObject_methods);
        REGISTER_SPL_IMPLEMENTS(ArrayObject, Aggregate);
        REGISTER_SPL_IMPLEMENTS(ArrayObject, ArrayAccess);
        REGISTER_SPL_IMPLEMENTS(ArrayObject, Serializable);
@@ -2031,7 +1962,7 @@ PHP_MINIT_FUNCTION(spl_array)
        spl_handler_ArrayObject.dtor_obj = zend_objects_destroy_object;
        spl_handler_ArrayObject.free_obj = spl_array_object_free_storage;
 
-       REGISTER_SPL_STD_CLASS_EX(ArrayIterator, spl_array_object_new, spl_funcs_ArrayIterator);
+       REGISTER_SPL_STD_CLASS_EX(ArrayIterator, spl_array_object_new, class_ArrayIterator_methods);
        REGISTER_SPL_IMPLEMENTS(ArrayIterator, Iterator);
        REGISTER_SPL_IMPLEMENTS(ArrayIterator, ArrayAccess);
        REGISTER_SPL_IMPLEMENTS(ArrayIterator, SeekableIterator);
@@ -2048,7 +1979,7 @@ PHP_MINIT_FUNCTION(spl_array)
        REGISTER_SPL_CLASS_CONST_LONG(ArrayIterator, "STD_PROP_LIST",    SPL_ARRAY_STD_PROP_LIST);
        REGISTER_SPL_CLASS_CONST_LONG(ArrayIterator, "ARRAY_AS_PROPS",   SPL_ARRAY_ARRAY_AS_PROPS);
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveArrayIterator, ArrayIterator, spl_array_object_new, spl_funcs_RecursiveArrayIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveArrayIterator, ArrayIterator, spl_array_object_new, class_RecursiveArrayIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveArrayIterator, RecursiveIterator);
        spl_ce_RecursiveArrayIterator->get_iterator = spl_array_get_iterator;
        spl_ce_RecursiveArrayIterator->ce_flags |= ZEND_ACC_REUSE_GET_ITERATOR;
index a68a482edd022057a52a13d15528a74800ee3e59..41cc787b169b3ebb303c27b7000de18f110458fc 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable
 {
     /** @param array|object $input */
@@ -117,12 +119,14 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun
     /**
      * @param mixed $index
      * @return bool
+     * @alias ArrayObject::offsetExists
      */
     public function offsetExists($index) {}
 
     /**
      * @param mixed $index
      * @return mixed
+     * @alias ArrayObject::offsetGet
      */
     public function offsetGet($index) {}
 
@@ -130,73 +134,110 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun
      * @param mixed $index
      * @param mixed $value
      * @return void
+     * @alias ArrayObject::offsetSet
      */
     public function offsetSet($index, $value) {}
 
     /**
      * @param mixed $index
      * @return void
+     * @alias ArrayObject::offsetUnset
      */
     public function offsetUnset($index) {}
 
     /**
      * @param mixed $value
      * @return void
+     * @alias ArrayObject::append
      */
     public function append($value) {}
 
-    /** @return array */
+    /**
+     * @return array
+     * @alias ArrayObject::getArrayCopy
+     */
     public function getArrayCopy() {}
 
-    /** @return int */
+    /**
+     * @return int
+     * @alias ArrayObject::count
+     */
     public function count() {}
 
-    /** @return int */
+    /**
+     * @return int
+     * @alias ArrayObject::getFlags
+     */
     public function getFlags() {}
 
-    /** @return void */
+    /**
+     * @return void
+     * @alias ArrayObject::setFlags
+     */
     public function setFlags(int $flags) {}
 
     /**
      * @param int $sort_flags
      * @return bool
+     * @alias ArrayObject::asort
      */
     public function asort($sort_flags = SORT_REGULAR) {}
 
     /**
      * @param int $sort_flags
      * @return bool
+     * @alias ArrayObject::offsetExists
      */
     public function ksort($sort_flags = SORT_REGULAR) {}
 
     /**
      * @param callback $cmp_function
      * @return bool
+     * @alias ArrayObject::uasort
      */
     public function uasort($cmp_function) {}
 
     /**
      * @param callback $cmp_function
      * @return bool
+     * @alias ArrayObject::uksort
      */
     public function uksort($cmp_function) {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias ArrayObject::natsort
+     */
     public function natsort() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias ArrayObject::natcasesort
+     */
     public function natcasesort() {}
 
-    /** @return void */
+    /**
+     * @return void
+     * @alias ArrayObject::unserialize
+     */
     public function unserialize(string $serialized) {}
 
-    /** @return string */
+    /**
+     * @return string
+     * @alias ArrayObject::serialize
+     */
     public function serialize() {}
 
-    /** @return array */
+    /**
+     * @return array
+     * @alias ArrayObject::__serialize
+     */
     public function __serialize() {}
 
-    /** @return void */
+    /**
+     * @return void
+     * @alias ArrayObject::__unserialize
+     */
     public function __unserialize(array $data) {}
 
     /** @return void */
@@ -217,7 +258,10 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun
     /** @return void */
     public function seek(int $position) {}
 
-    /** @return array */
+    /**
+     * @return array
+     * @alias ArrayObject::__debugInfo
+     */
     public function __debugInfo() {}
 }
 
index c131c3f7fbd5d0b7cd1f06f102688aa77481fe7f..ac69fd70e9336530df5638714c383f305661fdc4 100644 (file)
@@ -138,3 +138,108 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_RecursiveArrayIterator_hasChildren arginfo_class_ArrayObject_getArrayCopy
 
 #define arginfo_class_RecursiveArrayIterator_getChildren arginfo_class_ArrayObject_getArrayCopy
+
+
+ZEND_METHOD(ArrayObject, __construct);
+ZEND_METHOD(ArrayObject, offsetExists);
+ZEND_METHOD(ArrayObject, offsetGet);
+ZEND_METHOD(ArrayObject, offsetSet);
+ZEND_METHOD(ArrayObject, offsetUnset);
+ZEND_METHOD(ArrayObject, append);
+ZEND_METHOD(ArrayObject, getArrayCopy);
+ZEND_METHOD(ArrayObject, count);
+ZEND_METHOD(ArrayObject, getFlags);
+ZEND_METHOD(ArrayObject, setFlags);
+ZEND_METHOD(ArrayObject, asort);
+ZEND_METHOD(ArrayObject, ksort);
+ZEND_METHOD(ArrayObject, uasort);
+ZEND_METHOD(ArrayObject, uksort);
+ZEND_METHOD(ArrayObject, natsort);
+ZEND_METHOD(ArrayObject, natcasesort);
+ZEND_METHOD(ArrayObject, unserialize);
+ZEND_METHOD(ArrayObject, serialize);
+ZEND_METHOD(ArrayObject, __serialize);
+ZEND_METHOD(ArrayObject, __unserialize);
+ZEND_METHOD(ArrayObject, getIterator);
+ZEND_METHOD(ArrayObject, exchangeArray);
+ZEND_METHOD(ArrayObject, setIteratorClass);
+ZEND_METHOD(ArrayObject, getIteratorClass);
+ZEND_METHOD(ArrayObject, __debugInfo);
+ZEND_METHOD(ArrayIterator, __construct);
+ZEND_METHOD(ArrayIterator, rewind);
+ZEND_METHOD(ArrayIterator, current);
+ZEND_METHOD(ArrayIterator, key);
+ZEND_METHOD(ArrayIterator, next);
+ZEND_METHOD(ArrayIterator, valid);
+ZEND_METHOD(ArrayIterator, seek);
+ZEND_METHOD(RecursiveArrayIterator, hasChildren);
+ZEND_METHOD(RecursiveArrayIterator, getChildren);
+
+
+static const zend_function_entry class_ArrayObject_methods[] = {
+       ZEND_ME(ArrayObject, __construct, arginfo_class_ArrayObject___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, offsetExists, arginfo_class_ArrayObject_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, offsetGet, arginfo_class_ArrayObject_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, offsetSet, arginfo_class_ArrayObject_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, offsetUnset, arginfo_class_ArrayObject_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, append, arginfo_class_ArrayObject_append, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, getArrayCopy, arginfo_class_ArrayObject_getArrayCopy, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, count, arginfo_class_ArrayObject_count, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, getFlags, arginfo_class_ArrayObject_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, setFlags, arginfo_class_ArrayObject_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, asort, arginfo_class_ArrayObject_asort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, ksort, arginfo_class_ArrayObject_ksort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, uasort, arginfo_class_ArrayObject_uasort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, uksort, arginfo_class_ArrayObject_uksort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, natsort, arginfo_class_ArrayObject_natsort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, natcasesort, arginfo_class_ArrayObject_natcasesort, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, unserialize, arginfo_class_ArrayObject_unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, serialize, arginfo_class_ArrayObject_serialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, __serialize, arginfo_class_ArrayObject___serialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, __unserialize, arginfo_class_ArrayObject___unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, getIterator, arginfo_class_ArrayObject_getIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, exchangeArray, arginfo_class_ArrayObject_exchangeArray, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, setIteratorClass, arginfo_class_ArrayObject_setIteratorClass, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, getIteratorClass, arginfo_class_ArrayObject_getIteratorClass, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayObject, __debugInfo, arginfo_class_ArrayObject___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_ArrayIterator_methods[] = {
+       ZEND_ME(ArrayIterator, __construct, arginfo_class_ArrayIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, offsetExists, offsetExists, arginfo_class_ArrayIterator_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, offsetGet, offsetGet, arginfo_class_ArrayIterator_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, offsetSet, offsetSet, arginfo_class_ArrayIterator_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, offsetUnset, offsetUnset, arginfo_class_ArrayIterator_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, append, append, arginfo_class_ArrayIterator_append, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, getArrayCopy, getArrayCopy, arginfo_class_ArrayIterator_getArrayCopy, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, count, count, arginfo_class_ArrayIterator_count, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, getFlags, getFlags, arginfo_class_ArrayIterator_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, setFlags, setFlags, arginfo_class_ArrayIterator_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, asort, asort, arginfo_class_ArrayIterator_asort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, ksort, offsetExists, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, uasort, uasort, arginfo_class_ArrayIterator_uasort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, uksort, uksort, arginfo_class_ArrayIterator_uksort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, natsort, natsort, arginfo_class_ArrayIterator_natsort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, natcasesort, natcasesort, arginfo_class_ArrayIterator_natcasesort, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, unserialize, unserialize, arginfo_class_ArrayIterator_unserialize, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, serialize, serialize, arginfo_class_ArrayIterator_serialize, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, __serialize, __serialize, arginfo_class_ArrayIterator___serialize, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, __unserialize, __unserialize, arginfo_class_ArrayIterator___unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, rewind, arginfo_class_ArrayIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, current, arginfo_class_ArrayIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, key, arginfo_class_ArrayIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, next, arginfo_class_ArrayIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, valid, arginfo_class_ArrayIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(ArrayIterator, seek, arginfo_class_ArrayIterator_seek, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(ArrayObject, __debugInfo, __debugInfo, arginfo_class_ArrayIterator___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveArrayIterator_methods[] = {
+       ZEND_ME(RecursiveArrayIterator, hasChildren, arginfo_class_RecursiveArrayIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveArrayIterator, getChildren, arginfo_class_RecursiveArrayIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
index 2472f555a999996345c30eb798c07bea4b6bf725..8b4c2560e6e1848c1ecbde380496fd89bc090d07 100644 (file)
@@ -753,7 +753,7 @@ void spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAMETERS, zend_long cto
 
 /* {{{ proto DirectoryIterator::__construct(string path)
  Cronstructs a new dir iterator from a path. */
-SPL_METHOD(DirectoryIterator, __construct)
+PHP_METHOD(DirectoryIterator, __construct)
 {
        spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
 }
@@ -761,7 +761,7 @@ SPL_METHOD(DirectoryIterator, __construct)
 
 /* {{{ proto void DirectoryIterator::rewind()
    Rewind dir back to the start */
-SPL_METHOD(DirectoryIterator, rewind)
+PHP_METHOD(DirectoryIterator, rewind)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -779,7 +779,7 @@ SPL_METHOD(DirectoryIterator, rewind)
 
 /* {{{ proto string DirectoryIterator::key()
    Return current dir entry */
-SPL_METHOD(DirectoryIterator, key)
+PHP_METHOD(DirectoryIterator, key)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -797,7 +797,7 @@ SPL_METHOD(DirectoryIterator, key)
 
 /* {{{ proto DirectoryIterator DirectoryIterator::current()
    Return this (needed for Iterator interface) */
-SPL_METHOD(DirectoryIterator, current)
+PHP_METHOD(DirectoryIterator, current)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -809,7 +809,7 @@ SPL_METHOD(DirectoryIterator, current)
 
 /* {{{ proto void DirectoryIterator::next()
    Move to next entry */
-SPL_METHOD(DirectoryIterator, next)
+PHP_METHOD(DirectoryIterator, next)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS);
@@ -831,7 +831,7 @@ SPL_METHOD(DirectoryIterator, next)
 
 /* {{{ proto void DirectoryIterator::seek(int position)
    Seek to the given position */
-SPL_METHOD(DirectoryIterator, seek)
+PHP_METHOD(DirectoryIterator, seek)
 {
        spl_filesystem_object *intern    = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zval retval;
@@ -861,7 +861,7 @@ SPL_METHOD(DirectoryIterator, seek)
 
 /* {{{ proto string DirectoryIterator::valid()
    Check whether dir contains more entries */
-SPL_METHOD(DirectoryIterator, valid)
+PHP_METHOD(DirectoryIterator, valid)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -875,7 +875,7 @@ SPL_METHOD(DirectoryIterator, valid)
 
 /* {{{ proto string SplFileInfo::getPath()
    Return the path */
-SPL_METHOD(SplFileInfo, getPath)
+PHP_METHOD(SplFileInfo, getPath)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *path;
@@ -896,7 +896,7 @@ SPL_METHOD(SplFileInfo, getPath)
 
 /* {{{ proto string SplFileInfo::getFilename()
    Return filename only */
-SPL_METHOD(SplFileInfo, getFilename)
+PHP_METHOD(SplFileInfo, getFilename)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        size_t path_len;
@@ -917,7 +917,7 @@ SPL_METHOD(SplFileInfo, getFilename)
 
 /* {{{ proto string DirectoryIterator::getFilename()
    Return filename of current dir entry */
-SPL_METHOD(DirectoryIterator, getFilename)
+PHP_METHOD(DirectoryIterator, getFilename)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -931,7 +931,7 @@ SPL_METHOD(DirectoryIterator, getFilename)
 
 /* {{{ proto string SplFileInfo::getExtension()
    Returns file extension component of path */
-SPL_METHOD(SplFileInfo, getExtension)
+PHP_METHOD(SplFileInfo, getExtension)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *fname = NULL;
@@ -972,7 +972,7 @@ SPL_METHOD(SplFileInfo, getExtension)
 
 /* {{{ proto string DirectoryIterator::getExtension()
    Returns the file extension component of path */
-SPL_METHOD(DirectoryIterator, getExtension)
+PHP_METHOD(DirectoryIterator, getExtension)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        const char *p;
@@ -999,7 +999,7 @@ SPL_METHOD(DirectoryIterator, getExtension)
 
 /* {{{ proto string SplFileInfo::getBasename([string $suffix])
    Returns filename component of path */
-SPL_METHOD(SplFileInfo, getBasename)
+PHP_METHOD(SplFileInfo, getBasename)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *fname, *suffix = 0;
@@ -1026,7 +1026,7 @@ SPL_METHOD(SplFileInfo, getBasename)
 
 /* {{{ proto string DirectoryIterator::getBasename([string $suffix])
    Returns filename component of current dir entry */
-SPL_METHOD(DirectoryIterator, getBasename)
+PHP_METHOD(DirectoryIterator, getBasename)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *suffix = 0;
@@ -1045,7 +1045,7 @@ SPL_METHOD(DirectoryIterator, getBasename)
 
 /* {{{ proto string SplFileInfo::getPathname()
    Return path and filename */
-SPL_METHOD(SplFileInfo, getPathname)
+PHP_METHOD(SplFileInfo, getPathname)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *path;
@@ -1065,7 +1065,7 @@ SPL_METHOD(SplFileInfo, getPathname)
 
 /* {{{ proto string FilesystemIterator::key()
    Return getPathname() or getFilename() depending on flags */
-SPL_METHOD(FilesystemIterator, key)
+PHP_METHOD(FilesystemIterator, key)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1084,7 +1084,7 @@ SPL_METHOD(FilesystemIterator, key)
 
 /* {{{ proto string FilesystemIterator::current()
    Return getFilename(), getFileInfo() or $this depending on flags */
-SPL_METHOD(FilesystemIterator, current)
+PHP_METHOD(FilesystemIterator, current)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1107,7 +1107,7 @@ SPL_METHOD(FilesystemIterator, current)
 
 /* {{{ proto bool DirectoryIterator::isDot()
    Returns true if current entry is '.' or  '..' */
-SPL_METHOD(DirectoryIterator, isDot)
+PHP_METHOD(DirectoryIterator, isDot)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1124,7 +1124,7 @@ SPL_METHOD(DirectoryIterator, isDot)
 /* When the constructor gets called the object is already created
    by the engine, so we must only call 'additional' initializations.
  */
-SPL_METHOD(SplFileInfo, __construct)
+PHP_METHOD(SplFileInfo, __construct)
 {
        spl_filesystem_object *intern;
        char *path;
@@ -1144,7 +1144,7 @@ SPL_METHOD(SplFileInfo, __construct)
 
 /* {{{ FileInfoFunction */
 #define FileInfoFunction(func_name, func_num) \
-SPL_METHOD(SplFileInfo, func_name) \
+PHP_METHOD(SplFileInfo, func_name) \
 { \
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); \
        zend_error_handling error_handling; \
@@ -1236,7 +1236,7 @@ FileInfoFunction(isLink, FS_IS_LINK)
 
 /* {{{ proto string SplFileInfo::getLinkTarget()
    Return the target of a symbolic link */
-SPL_METHOD(SplFileInfo, getLinkTarget)
+PHP_METHOD(SplFileInfo, getLinkTarget)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        ssize_t ret;
@@ -1286,7 +1286,7 @@ SPL_METHOD(SplFileInfo, getLinkTarget)
 
 /* {{{ proto string SplFileInfo::getRealPath()
    Return the resolved path */
-SPL_METHOD(SplFileInfo, getRealPath)
+PHP_METHOD(SplFileInfo, getRealPath)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char buff[MAXPATHLEN];
@@ -1327,7 +1327,7 @@ SPL_METHOD(SplFileInfo, getRealPath)
 
 /* {{{ proto SplFileObject SplFileInfo::openFile([string mode = 'r' [, bool use_include_path  [, resource context]]])
    Open the current file */
-SPL_METHOD(SplFileInfo, openFile)
+PHP_METHOD(SplFileInfo, openFile)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1337,7 +1337,7 @@ SPL_METHOD(SplFileInfo, openFile)
 
 /* {{{ proto void SplFileInfo::setFileClass([string class_name])
    Class to use in openFile() */
-SPL_METHOD(SplFileInfo, setFileClass)
+PHP_METHOD(SplFileInfo, setFileClass)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_class_entry *ce = spl_ce_SplFileObject;
@@ -1352,7 +1352,7 @@ SPL_METHOD(SplFileInfo, setFileClass)
 
 /* {{{ proto void SplFileInfo::setInfoClass([string class_name])
    Class to use in getFileInfo(), getPathInfo() */
-SPL_METHOD(SplFileInfo, setInfoClass)
+PHP_METHOD(SplFileInfo, setInfoClass)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_class_entry *ce = spl_ce_SplFileInfo;
@@ -1367,7 +1367,7 @@ SPL_METHOD(SplFileInfo, setInfoClass)
 
 /* {{{ proto SplFileInfo SplFileInfo::getFileInfo([string $class_name])
    Get/copy file info */
-SPL_METHOD(SplFileInfo, getFileInfo)
+PHP_METHOD(SplFileInfo, getFileInfo)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_class_entry *ce = intern->info_class;
@@ -1382,7 +1382,7 @@ SPL_METHOD(SplFileInfo, getFileInfo)
 
 /* {{{ proto SplFileInfo SplFileInfo::getPathInfo([string $class_name])
    Get/copy file info */
-SPL_METHOD(SplFileInfo, getPathInfo)
+PHP_METHOD(SplFileInfo, getPathInfo)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_class_entry *ce = intern->info_class;
@@ -1404,7 +1404,7 @@ SPL_METHOD(SplFileInfo, getPathInfo)
 /* }}} */
 
 /* {{{ proto void SplFileInfo::__debugInfo() */
-SPL_METHOD(SplFileInfo, __debugInfo)
+PHP_METHOD(SplFileInfo, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -1414,7 +1414,7 @@ SPL_METHOD(SplFileInfo, __debugInfo)
 } /* }}} */
 
 /* {{{  proto SplFileInfo::_bad_state_ex(void) */
-SPL_METHOD(SplFileInfo, _bad_state_ex)
+PHP_METHOD(SplFileInfo, _bad_state_ex)
 {
        zend_throw_exception_ex(spl_ce_LogicException, 0,
                "The parent constructor was not called: the object is in an "
@@ -1424,7 +1424,7 @@ SPL_METHOD(SplFileInfo, _bad_state_ex)
 
 /* {{{ proto FilesystemIterator::__construct(string path [, int flags])
  Cronstructs a new dir iterator from a path. */
-SPL_METHOD(FilesystemIterator, __construct)
+PHP_METHOD(FilesystemIterator, __construct)
 {
        spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIT_CTOR_FLAGS | SPL_FILE_DIR_SKIPDOTS);
 }
@@ -1432,7 +1432,7 @@ SPL_METHOD(FilesystemIterator, __construct)
 
 /* {{{ proto void FilesystemIterator::rewind()
    Rewind dir back to the start */
-SPL_METHOD(FilesystemIterator, rewind)
+PHP_METHOD(FilesystemIterator, rewind)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        int skip_dots = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_SKIPDOTS);
@@ -1453,7 +1453,7 @@ SPL_METHOD(FilesystemIterator, rewind)
 
 /* {{{ proto int FilesystemIterator::getFlags()
    Get handling flags */
-SPL_METHOD(FilesystemIterator, getFlags)
+PHP_METHOD(FilesystemIterator, getFlags)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1466,7 +1466,7 @@ SPL_METHOD(FilesystemIterator, getFlags)
 
 /* {{{ proto void FilesystemIterator::setFlags(long $flags)
    Set handling flags */
-SPL_METHOD(FilesystemIterator, setFlags)
+PHP_METHOD(FilesystemIterator, setFlags)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long flags;
@@ -1481,7 +1481,7 @@ SPL_METHOD(FilesystemIterator, setFlags)
 
 /* {{{ proto bool RecursiveDirectoryIterator::hasChildren([bool $allow_links = false])
    Returns whether current entry is a directory and not '.' or '..' */
-SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
+PHP_METHOD(RecursiveDirectoryIterator, hasChildren)
 {
        zend_bool allow_links = 0;
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
@@ -1506,7 +1506,7 @@ SPL_METHOD(RecursiveDirectoryIterator, hasChildren)
 
 /* {{{ proto RecursiveDirectoryIterator DirectoryIterator::getChildren()
    Returns an iterator for the current entry if it is a directory */
-SPL_METHOD(RecursiveDirectoryIterator, getChildren)
+PHP_METHOD(RecursiveDirectoryIterator, getChildren)
 {
        zval zpath, zflags;
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
@@ -1541,7 +1541,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getChildren)
 
 /* {{{ proto void RecursiveDirectoryIterator::getSubPath()
    Get sub path */
-SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
+PHP_METHOD(RecursiveDirectoryIterator, getSubPath)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1559,7 +1559,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
 
 /* {{{ proto void RecursiveDirectoryIterator::getSubPathname()
    Get sub path and file name */
-SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
+PHP_METHOD(RecursiveDirectoryIterator, getSubPathname)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH;
@@ -1578,7 +1578,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
 
 /* {{{ proto RecursiveDirectoryIterator::__construct(string path [, int flags])
  Cronstructs a new dir iterator from a path. */
-SPL_METHOD(RecursiveDirectoryIterator, __construct)
+PHP_METHOD(RecursiveDirectoryIterator, __construct)
 {
        spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIT_CTOR_FLAGS);
 }
@@ -1587,7 +1587,7 @@ SPL_METHOD(RecursiveDirectoryIterator, __construct)
 #ifdef HAVE_GLOB
 /* {{{ proto GlobIterator::__construct(string path [, int flags])
  Cronstructs a new dir iterator from a glob expression (no glob:// needed). */
-SPL_METHOD(GlobIterator, __construct)
+PHP_METHOD(GlobIterator, __construct)
 {
        spl_filesystem_object_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIT_CTOR_FLAGS|DIT_CTOR_GLOB);
 }
@@ -1595,7 +1595,7 @@ SPL_METHOD(GlobIterator, __construct)
 
 /* {{{ proto int GlobIterator::count()
    Return the number of directories and files found by globbing */
-SPL_METHOD(GlobIterator, count)
+PHP_METHOD(GlobIterator, count)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -1883,90 +1883,6 @@ static int spl_filesystem_object_cast(zend_object *readobj, zval *writeobj, int
 }
 /* }}} */
 
-/* the method table */
-/* each method can have its own parameters and visibility */
-static const zend_function_entry spl_SplFileInfo_functions[] = {
-       SPL_ME(SplFileInfo,       __construct,   arginfo_class_SplFileInfo___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getPath,       arginfo_class_SplFileInfo_getPath, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getFilename,   arginfo_class_SplFileInfo_getFilename, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getExtension,  arginfo_class_SplFileInfo_getExtension, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getBasename,   arginfo_class_SplFileInfo_getBasename, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getPathname,   arginfo_class_SplFileInfo_getPathname, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getPerms,      arginfo_class_SplFileInfo_getPerms, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getInode,      arginfo_class_SplFileInfo_getInode, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getSize,       arginfo_class_SplFileInfo_getSize, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getOwner,      arginfo_class_SplFileInfo_getOwner, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getGroup,      arginfo_class_SplFileInfo_getGroup, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getATime,      arginfo_class_SplFileInfo_getATime, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getMTime,      arginfo_class_SplFileInfo_getMTime, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getCTime,      arginfo_class_SplFileInfo_getCTime, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getType,       arginfo_class_SplFileInfo_getType, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isWritable,    arginfo_class_SplFileInfo_isWritable, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isReadable,    arginfo_class_SplFileInfo_isReadable, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isExecutable,  arginfo_class_SplFileInfo_isExecutable, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isFile,        arginfo_class_SplFileInfo_isFile, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isDir,         arginfo_class_SplFileInfo_isDir, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       isLink,        arginfo_class_SplFileInfo_isLink, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getLinkTarget, arginfo_class_SplFileInfo_getLinkTarget, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getRealPath,   arginfo_class_SplFileInfo_getRealPath, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getFileInfo,   arginfo_class_SplFileInfo_getFileInfo, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       getPathInfo,   arginfo_class_SplFileInfo_getPathInfo, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       openFile,      arginfo_class_SplFileInfo_openFile,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       setFileClass,  arginfo_class_SplFileInfo_setFileClass, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       setInfoClass,  arginfo_class_SplFileInfo_setInfoClass, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       __debugInfo,   arginfo_class_SplFileInfo___debugInfo, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileInfo,       _bad_state_ex, arginfo_class_SplFileInfo__bad_state_ex,               ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
-       SPL_MA(SplFileInfo,       __toString, SplFileInfo, getPathname, arginfo_class_SplFileInfo___toString, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-/* the method table */
-/* each method can have its own parameters and visibility */
-static const zend_function_entry spl_DirectoryIterator_functions[] = {
-       SPL_ME(DirectoryIterator, __construct,   arginfo_class_DirectoryIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, getFilename,   arginfo_class_DirectoryIterator_getFilename, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, getExtension,  arginfo_class_DirectoryIterator_getExtension, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, getBasename,   arginfo_class_DirectoryIterator_getBasename, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, isDot,         arginfo_class_DirectoryIterator_isDot, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, rewind,        arginfo_class_DirectoryIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, valid,         arginfo_class_DirectoryIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, key,           arginfo_class_DirectoryIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, current,       arginfo_class_DirectoryIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, next,          arginfo_class_DirectoryIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator, seek,          arginfo_class_DirectoryIterator_seek, ZEND_ACC_PUBLIC)
-       SPL_MA(DirectoryIterator, __toString, DirectoryIterator, getFilename, arginfo_class_DirectoryIterator___toString, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_FilesystemIterator_functions[] = {
-       SPL_ME(FilesystemIterator, __construct,   arginfo_class_FilesystemIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(FilesystemIterator, rewind,        arginfo_class_FilesystemIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(DirectoryIterator,  next,          arginfo_class_FilesystemIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(FilesystemIterator, key,           arginfo_class_FilesystemIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(FilesystemIterator, current,       arginfo_class_FilesystemIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(FilesystemIterator, getFlags,      arginfo_class_FilesystemIterator_getFlags, ZEND_ACC_PUBLIC)
-       SPL_ME(FilesystemIterator, setFlags,      arginfo_class_FilesystemIterator_setFlags, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_RecursiveDirectoryIterator_functions[] = {
-       SPL_ME(RecursiveDirectoryIterator, __construct,   arginfo_class_RecursiveDirectoryIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveDirectoryIterator, hasChildren,   arginfo_class_RecursiveDirectoryIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveDirectoryIterator, getChildren,   arginfo_class_RecursiveDirectoryIterator_getChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveDirectoryIterator, getSubPath,    arginfo_class_RecursiveDirectoryIterator_getSubPath, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveDirectoryIterator, getSubPathname,arginfo_class_RecursiveDirectoryIterator_getSubPathname, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-#ifdef HAVE_GLOB
-static const zend_function_entry spl_GlobIterator_functions[] = {
-       SPL_ME(GlobIterator, __construct,   arginfo_class_GlobIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(GlobIterator, count,         arginfo_class_GlobIterator_count,  ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-#endif
-/* }}} */
-
 static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent) /* {{{ */
 {
        char *buf;
@@ -2198,7 +2114,7 @@ static void spl_filesystem_file_rewind(zval * this_ptr, spl_filesystem_object *i
 
 /* {{{ proto SplFileObject::__construct(string filename [, string mode = 'r' [, bool use_include_path  [, resource context]]]])
    Construct a new file object */
-SPL_METHOD(SplFileObject, __construct)
+PHP_METHOD(SplFileObject, __construct)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_bool use_include_path = 0;
@@ -2258,7 +2174,7 @@ SPL_METHOD(SplFileObject, __construct)
 
 /* {{{ proto SplTempFileObject::__construct([int max_memory])
    Construct a new temp file object */
-SPL_METHOD(SplTempFileObject, __construct)
+PHP_METHOD(SplTempFileObject, __construct)
 {
        zend_long max_memory = PHP_STREAM_MAX_MEM;
        char tmp_fname[48];
@@ -2292,7 +2208,7 @@ SPL_METHOD(SplTempFileObject, __construct)
 
 /* {{{ proto void SplFileObject::rewind()
    Rewind the file and read the first line */
-SPL_METHOD(SplFileObject, rewind)
+PHP_METHOD(SplFileObject, rewind)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2305,7 +2221,7 @@ SPL_METHOD(SplFileObject, rewind)
 
 /* {{{ proto void SplFileObject::eof()
    Return whether end of file is reached */
-SPL_METHOD(SplFileObject, eof)
+PHP_METHOD(SplFileObject, eof)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2323,7 +2239,7 @@ SPL_METHOD(SplFileObject, eof)
 
 /* {{{ proto void SplFileObject::valid()
    Return !eof() */
-SPL_METHOD(SplFileObject, valid)
+PHP_METHOD(SplFileObject, valid)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2343,7 +2259,7 @@ SPL_METHOD(SplFileObject, valid)
 
 /* {{{ proto string SplFileObject::fgets()
    Rturn next line from file */
-SPL_METHOD(SplFileObject, fgets)
+PHP_METHOD(SplFileObject, fgets)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2364,7 +2280,7 @@ SPL_METHOD(SplFileObject, fgets)
 
 /* {{{ proto string SplFileObject::current()
    Return current line from file */
-SPL_METHOD(SplFileObject, current)
+PHP_METHOD(SplFileObject, current)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2393,7 +2309,7 @@ SPL_METHOD(SplFileObject, current)
 
 /* {{{ proto int SplFileObject::key()
    Return line number */
-SPL_METHOD(SplFileObject, key)
+PHP_METHOD(SplFileObject, key)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2410,7 +2326,7 @@ SPL_METHOD(SplFileObject, key)
 
 /* {{{ proto void SplFileObject::next()
    Read next line */
-SPL_METHOD(SplFileObject, next)
+PHP_METHOD(SplFileObject, next)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2427,7 +2343,7 @@ SPL_METHOD(SplFileObject, next)
 
 /* {{{ proto void SplFileObject::setFlags(int flags)
    Set file handling flags */
-SPL_METHOD(SplFileObject, setFlags)
+PHP_METHOD(SplFileObject, setFlags)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2438,7 +2354,7 @@ SPL_METHOD(SplFileObject, setFlags)
 
 /* {{{ proto int SplFileObject::getFlags()
    Get file handling flags */
-SPL_METHOD(SplFileObject, getFlags)
+PHP_METHOD(SplFileObject, getFlags)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2451,7 +2367,7 @@ SPL_METHOD(SplFileObject, getFlags)
 
 /* {{{ proto void SplFileObject::setMaxLineLen(int max_len)
    Set maximum line length */
-SPL_METHOD(SplFileObject, setMaxLineLen)
+PHP_METHOD(SplFileObject, setMaxLineLen)
 {
        zend_long max_len;
 
@@ -2471,7 +2387,7 @@ SPL_METHOD(SplFileObject, setMaxLineLen)
 
 /* {{{ proto int SplFileObject::getMaxLineLen()
    Get maximum line length */
-SPL_METHOD(SplFileObject, getMaxLineLen)
+PHP_METHOD(SplFileObject, getMaxLineLen)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2484,7 +2400,7 @@ SPL_METHOD(SplFileObject, getMaxLineLen)
 
 /* {{{ proto bool SplFileObject::hasChildren()
    Return false */
-SPL_METHOD(SplFileObject, hasChildren)
+PHP_METHOD(SplFileObject, hasChildren)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -2495,7 +2411,7 @@ SPL_METHOD(SplFileObject, hasChildren)
 
 /* {{{ proto bool SplFileObject::getChildren()
    Read NULL */
-SPL_METHOD(SplFileObject, getChildren)
+PHP_METHOD(SplFileObject, getChildren)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -2505,7 +2421,7 @@ SPL_METHOD(SplFileObject, getChildren)
 
 /* {{{ FileFunction */
 #define FileFunction(func_name) \
-SPL_METHOD(SplFileObject, func_name) \
+PHP_METHOD(SplFileObject, func_name) \
 { \
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); \
        FileFunctionCall(func_name, ZEND_NUM_ARGS(), NULL); \
@@ -2514,7 +2430,7 @@ SPL_METHOD(SplFileObject, func_name) \
 
 /* {{{ proto array SplFileObject::fgetcsv([string delimiter [, string enclosure [, escape = '\\']]])
    Return current line as csv */
-SPL_METHOD(SplFileObject, fgetcsv)
+PHP_METHOD(SplFileObject, fgetcsv)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure;
@@ -2566,7 +2482,7 @@ SPL_METHOD(SplFileObject, fgetcsv)
 
 /* {{{ proto int SplFileObject::fputcsv(array fields, [string delimiter [, string enclosure [, string escape]]])
    Output a field array as a CSV line */
-SPL_METHOD(SplFileObject, fputcsv)
+PHP_METHOD(SplFileObject, fputcsv)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure;
@@ -2621,7 +2537,7 @@ SPL_METHOD(SplFileObject, fputcsv)
 
 /* {{{ proto void SplFileObject::setCsvControl([string delimiter [, string enclosure [, string escape ]]])
    Set the delimiter, enclosure and escape character used in fgetcsv */
-SPL_METHOD(SplFileObject, setCsvControl)
+PHP_METHOD(SplFileObject, setCsvControl)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char delimiter = ',', enclosure = '"';
@@ -2671,7 +2587,7 @@ SPL_METHOD(SplFileObject, setCsvControl)
 
 /* {{{ proto array SplFileObject::getCsvControl()
    Get the delimiter, enclosure and escape character used in fgetcsv */
-SPL_METHOD(SplFileObject, getCsvControl)
+PHP_METHOD(SplFileObject, getCsvControl)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char delimiter[2], enclosure[2], escape[2];
@@ -2702,7 +2618,7 @@ FileFunction(flock)
 
 /* {{{ proto bool SplFileObject::fflush()
    Flush the file */
-SPL_METHOD(SplFileObject, fflush)
+PHP_METHOD(SplFileObject, fflush)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2716,7 +2632,7 @@ SPL_METHOD(SplFileObject, fflush)
 
 /* {{{ proto int SplFileObject::ftell()
    Return current file position */
-SPL_METHOD(SplFileObject, ftell)
+PHP_METHOD(SplFileObject, ftell)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long ret;
@@ -2737,7 +2653,7 @@ SPL_METHOD(SplFileObject, ftell)
 
 /* {{{ proto int SplFileObject::fseek(int pos [, int whence = SEEK_SET])
    Return current file position */
-SPL_METHOD(SplFileObject, fseek)
+PHP_METHOD(SplFileObject, fseek)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long pos, whence = SEEK_SET;
@@ -2757,7 +2673,7 @@ SPL_METHOD(SplFileObject, fseek)
 
 /* {{{ proto int SplFileObject::fgetc()
    Get a character form the file */
-SPL_METHOD(SplFileObject, fgetc)
+PHP_METHOD(SplFileObject, fgetc)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char buf[2];
@@ -2787,7 +2703,7 @@ SPL_METHOD(SplFileObject, fgetc)
 
 /* {{{ proto int SplFileObject::fpassthru()
    Output all remaining data from a file pointer */
-SPL_METHOD(SplFileObject, fpassthru)
+PHP_METHOD(SplFileObject, fpassthru)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2801,7 +2717,7 @@ SPL_METHOD(SplFileObject, fpassthru)
 
 /* {{{ proto bool SplFileObject::fscanf(string format [, string ...])
    Implements a mostly ANSI compatible fscanf() */
-SPL_METHOD(SplFileObject, fscanf)
+PHP_METHOD(SplFileObject, fscanf)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
 
@@ -2819,7 +2735,7 @@ SPL_METHOD(SplFileObject, fscanf)
 
 /* {{{ proto int|false SplFileObject::fwrite(string str [, int length])
    Binary-safe file write */
-SPL_METHOD(SplFileObject, fwrite)
+PHP_METHOD(SplFileObject, fwrite)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        char *str;
@@ -2855,7 +2771,7 @@ SPL_METHOD(SplFileObject, fwrite)
        RETURN_LONG(written);
 } /* }}} */
 
-SPL_METHOD(SplFileObject, fread)
+PHP_METHOD(SplFileObject, fread)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long length = 0;
@@ -2889,7 +2805,7 @@ FileFunction(fstat)
 
 /* {{{ proto bool SplFileObject::ftruncate(int size)
    Truncate file to 'size' length */
-SPL_METHOD(SplFileObject, ftruncate)
+PHP_METHOD(SplFileObject, ftruncate)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long size;
@@ -2913,7 +2829,7 @@ SPL_METHOD(SplFileObject, ftruncate)
 
 /* {{{ proto void SplFileObject::seek(int line_pos)
    Seek to specified line */
-SPL_METHOD(SplFileObject, seek)
+PHP_METHOD(SplFileObject, seek)
 {
        spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS);
        zend_long line_pos;
@@ -2940,54 +2856,11 @@ SPL_METHOD(SplFileObject, seek)
        }
 } /* }}} */
 
-static const zend_function_entry spl_SplFileObject_functions[] = {
-       SPL_ME(SplFileObject, __construct,    arginfo_class_SplFileObject___construct,   ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, rewind,         arginfo_class_SplFileObject_rewind,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, eof,            arginfo_class_SplFileObject_eof,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, valid,          arginfo_class_SplFileObject_valid,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fgets,          arginfo_class_SplFileObject_fgets,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fgetcsv,        arginfo_class_SplFileObject_fgetcsv,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fputcsv,        arginfo_class_SplFileObject_fputcsv,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, setCsvControl,  arginfo_class_SplFileObject_setCsvControl,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, getCsvControl,  arginfo_class_SplFileObject_getCsvControl,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, flock,          arginfo_class_SplFileObject_flock,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fflush,         arginfo_class_SplFileObject_fflush,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, ftell,          arginfo_class_SplFileObject_ftell,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fseek,          arginfo_class_SplFileObject_fseek,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fgetc,          arginfo_class_SplFileObject_fgetc,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fpassthru,      arginfo_class_SplFileObject_fpassthru,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fscanf,         arginfo_class_SplFileObject_fscanf,        ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fwrite,         arginfo_class_SplFileObject_fwrite,        ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fread,          arginfo_class_SplFileObject_fread,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, fstat,          arginfo_class_SplFileObject_fstat,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, ftruncate,      arginfo_class_SplFileObject_ftruncate,     ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, current,        arginfo_class_SplFileObject_current,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, key,            arginfo_class_SplFileObject_key,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, next,           arginfo_class_SplFileObject_next,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, setFlags,       arginfo_class_SplFileObject_setFlags,      ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, getFlags,       arginfo_class_SplFileObject_getFlags,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, setMaxLineLen,  arginfo_class_SplFileObject_setMaxLineLen, ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, getMaxLineLen,  arginfo_class_SplFileObject_getMaxLineLen,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, hasChildren,    arginfo_class_SplFileObject_hasChildren,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, getChildren,    arginfo_class_SplFileObject_getChildren,          ZEND_ACC_PUBLIC)
-       SPL_ME(SplFileObject, seek,           arginfo_class_SplFileObject_seek,          ZEND_ACC_PUBLIC)
-       /* mappings */
-       SPL_MA(SplFileObject, getCurrentLine, SplFileObject, fgets,      arginfo_class_SplFileObject_getCurrentLine, ZEND_ACC_PUBLIC)
-       SPL_MA(SplFileObject, __toString,     SplFileObject, fgets,      arginfo_class_SplFileObject___toString, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_SplTempFileObject_functions[] = {
-       SPL_ME(SplTempFileObject, __construct, arginfo_class_SplTempFileObject___construct,  ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-/* }}} */
-
 /* {{{ PHP_MINIT_FUNCTION(spl_directory)
  */
 PHP_MINIT_FUNCTION(spl_directory)
 {
-       REGISTER_SPL_STD_CLASS_EX(SplFileInfo, spl_filesystem_object_new, spl_SplFileInfo_functions);
+       REGISTER_SPL_STD_CLASS_EX(SplFileInfo, spl_filesystem_object_new, class_SplFileInfo_methods);
        memcpy(&spl_filesystem_object_handlers, &std_object_handlers, sizeof(zend_object_handlers));
        spl_filesystem_object_handlers.offset = XtOffsetOf(spl_filesystem_object, std);
        spl_filesystem_object_handlers.clone_obj = spl_filesystem_object_clone;
@@ -2999,13 +2872,13 @@ PHP_MINIT_FUNCTION(spl_directory)
        REGISTER_SPL_IMPLEMENTS(SplFileInfo, Stringable);
 
 
-       REGISTER_SPL_SUB_CLASS_EX(DirectoryIterator, SplFileInfo, spl_filesystem_object_new, spl_DirectoryIterator_functions);
+       REGISTER_SPL_SUB_CLASS_EX(DirectoryIterator, SplFileInfo, spl_filesystem_object_new, class_DirectoryIterator_methods);
        zend_class_implements(spl_ce_DirectoryIterator, 1, zend_ce_iterator);
        REGISTER_SPL_IMPLEMENTS(DirectoryIterator, SeekableIterator);
 
        spl_ce_DirectoryIterator->get_iterator = spl_filesystem_dir_get_iterator;
 
-       REGISTER_SPL_SUB_CLASS_EX(FilesystemIterator, DirectoryIterator, spl_filesystem_object_new, spl_FilesystemIterator_functions);
+       REGISTER_SPL_SUB_CLASS_EX(FilesystemIterator, DirectoryIterator, spl_filesystem_object_new, class_FilesystemIterator_methods);
 
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "CURRENT_MODE_MASK",   SPL_FILE_DIR_CURRENT_MODE_MASK);
        REGISTER_SPL_CLASS_CONST_LONG(FilesystemIterator, "CURRENT_AS_PATHNAME", SPL_FILE_DIR_CURRENT_AS_PATHNAME);
@@ -3022,7 +2895,7 @@ PHP_MINIT_FUNCTION(spl_directory)
 
        spl_ce_FilesystemIterator->get_iterator = spl_filesystem_tree_get_iterator;
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveDirectoryIterator, FilesystemIterator, spl_filesystem_object_new, spl_RecursiveDirectoryIterator_functions);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveDirectoryIterator, FilesystemIterator, spl_filesystem_object_new, class_RecursiveDirectoryIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveDirectoryIterator, RecursiveIterator);
 
        memcpy(&spl_filesystem_object_check_handlers, &spl_filesystem_object_handlers, sizeof(zend_object_handlers));
@@ -3030,11 +2903,11 @@ PHP_MINIT_FUNCTION(spl_directory)
        spl_filesystem_object_check_handlers.get_method = spl_filesystem_object_get_method_check;
 
 #ifdef HAVE_GLOB
-       REGISTER_SPL_SUB_CLASS_EX(GlobIterator, FilesystemIterator, spl_filesystem_object_new_check, spl_GlobIterator_functions);
+       REGISTER_SPL_SUB_CLASS_EX(GlobIterator, FilesystemIterator, spl_filesystem_object_new_check, class_GlobIterator_methods);
        REGISTER_SPL_IMPLEMENTS(GlobIterator, Countable);
 #endif
 
-       REGISTER_SPL_SUB_CLASS_EX(SplFileObject, SplFileInfo, spl_filesystem_object_new_check, spl_SplFileObject_functions);
+       REGISTER_SPL_SUB_CLASS_EX(SplFileObject, SplFileInfo, spl_filesystem_object_new_check, class_SplFileObject_methods);
        REGISTER_SPL_IMPLEMENTS(SplFileObject, RecursiveIterator);
        REGISTER_SPL_IMPLEMENTS(SplFileObject, SeekableIterator);
 
@@ -3043,7 +2916,7 @@ PHP_MINIT_FUNCTION(spl_directory)
        REGISTER_SPL_CLASS_CONST_LONG(SplFileObject, "SKIP_EMPTY",    SPL_FILE_OBJECT_SKIP_EMPTY);
        REGISTER_SPL_CLASS_CONST_LONG(SplFileObject, "READ_CSV",      SPL_FILE_OBJECT_READ_CSV);
 
-       REGISTER_SPL_SUB_CLASS_EX(SplTempFileObject, SplFileObject, spl_filesystem_object_new_check, spl_SplTempFileObject_functions);
+       REGISTER_SPL_SUB_CLASS_EX(SplTempFileObject, SplFileObject, spl_filesystem_object_new_check, class_SplTempFileObject_methods);
        return SUCCESS;
 }
 /* }}} */
index 6e8108b6a3dc2bdac19440e7fb03c41e47adca9e..513dfef8aa3a9beb99f328ff68adfdf62d4e3ee9 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class SplFileInfo
 {
     public function __construct(string $file_name) {}
@@ -88,6 +90,7 @@ class SplFileInfo
     /** @return void */
     public function setInfoClass(string $class_name = SplFileInfo::class) {}
 
+    /** @alias SplFileInfo::getPathname */
     public function __toString(): string {}
 
     /** @return array */
@@ -131,6 +134,7 @@ class DirectoryIterator extends SplFileInfo implements SeekableIterator
     /** @return void */
     public function seek(int $position) {}
 
+    /** @alias DirectoryIterator::getFilename */
     public function __toString(): string {}
 }
 
@@ -141,9 +145,6 @@ class FilesystemIterator extends DirectoryIterator
     /** @return void */
     public function rewind() {}
 
-    /** @return void */
-    public function next() {}
-
     /** @return string */
     public function key() {}
 
@@ -174,6 +175,7 @@ class RecursiveDirectoryIterator extends FilesystemIterator implements Recursive
     public function getSubPathname() {}
 }
 
+#ifdef HAVE_GLOB
 class GlobIterator extends FilesystemIterator implements Countable
 {
     public function __construct(string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO) {}
@@ -181,6 +183,7 @@ class GlobIterator extends FilesystemIterator implements Countable
     /** @return int */
     public function count() {}
 }
+#endif
 
 class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator
 {
@@ -277,9 +280,13 @@ class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIt
     /** @return void */
     public function seek(int $line_pos) {}
 
-    /** @return string|false */
+    /**
+     * @return string|false
+     * @alias SplFileObject::fgets
+     */
     public function getCurrentLine() {}
 
+    /** @alias SplFileObject::fgets */
     public function __toString(): string {}
 }
 
index c65fba76b8106f9312e04a11b3cf4824a074d272..49fdb709ceb0e6e0b32c88b59f6078a4a08b70d3 100644 (file)
@@ -113,8 +113,6 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_FilesystemIterator_rewind arginfo_class_SplFileInfo_getPath
 
-#define arginfo_class_FilesystemIterator_next arginfo_class_SplFileInfo_getPath
-
 #define arginfo_class_FilesystemIterator_key arginfo_class_SplFileInfo_getPath
 
 #define arginfo_class_FilesystemIterator_current arginfo_class_SplFileInfo_getPath
@@ -140,9 +138,17 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_RecursiveDirectoryIterator_getSubPathname arginfo_class_SplFileInfo_getPath
 
-#define arginfo_class_GlobIterator___construct arginfo_class_RecursiveDirectoryIterator___construct
+#if defined(HAVE_GLOB)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_GlobIterator___construct, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO")
+ZEND_END_ARG_INFO()
+#endif
 
-#define arginfo_class_GlobIterator_count arginfo_class_SplFileInfo_getPath
+#if defined(HAVE_GLOB)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_GlobIterator_count, 0, 0, 0)
+ZEND_END_ARG_INFO()
+#endif
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject___construct, 0, 0, 1)
        ZEND_ARG_TYPE_INFO(0, file_name, IS_STRING, 0)
@@ -249,3 +255,222 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplTempFileObject___construct, 0, 0, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, max_memory, IS_LONG, 0, "2 * 1024 * 1024")
 ZEND_END_ARG_INFO()
+
+
+ZEND_METHOD(SplFileInfo, __construct);
+ZEND_METHOD(SplFileInfo, getPath);
+ZEND_METHOD(SplFileInfo, getFilename);
+ZEND_METHOD(SplFileInfo, getExtension);
+ZEND_METHOD(SplFileInfo, getBasename);
+ZEND_METHOD(SplFileInfo, getPathname);
+ZEND_METHOD(SplFileInfo, getPerms);
+ZEND_METHOD(SplFileInfo, getInode);
+ZEND_METHOD(SplFileInfo, getSize);
+ZEND_METHOD(SplFileInfo, getOwner);
+ZEND_METHOD(SplFileInfo, getGroup);
+ZEND_METHOD(SplFileInfo, getATime);
+ZEND_METHOD(SplFileInfo, getMTime);
+ZEND_METHOD(SplFileInfo, getCTime);
+ZEND_METHOD(SplFileInfo, getType);
+ZEND_METHOD(SplFileInfo, isWritable);
+ZEND_METHOD(SplFileInfo, isReadable);
+ZEND_METHOD(SplFileInfo, isExecutable);
+ZEND_METHOD(SplFileInfo, isFile);
+ZEND_METHOD(SplFileInfo, isDir);
+ZEND_METHOD(SplFileInfo, isLink);
+ZEND_METHOD(SplFileInfo, getLinkTarget);
+ZEND_METHOD(SplFileInfo, getRealPath);
+ZEND_METHOD(SplFileInfo, getFileInfo);
+ZEND_METHOD(SplFileInfo, getPathInfo);
+ZEND_METHOD(SplFileInfo, openFile);
+ZEND_METHOD(SplFileInfo, setFileClass);
+ZEND_METHOD(SplFileInfo, setInfoClass);
+ZEND_METHOD(SplFileInfo, __debugInfo);
+ZEND_METHOD(SplFileInfo, _bad_state_ex);
+ZEND_METHOD(DirectoryIterator, __construct);
+ZEND_METHOD(DirectoryIterator, getFilename);
+ZEND_METHOD(DirectoryIterator, getExtension);
+ZEND_METHOD(DirectoryIterator, getBasename);
+ZEND_METHOD(DirectoryIterator, isDot);
+ZEND_METHOD(DirectoryIterator, rewind);
+ZEND_METHOD(DirectoryIterator, valid);
+ZEND_METHOD(DirectoryIterator, key);
+ZEND_METHOD(DirectoryIterator, current);
+ZEND_METHOD(DirectoryIterator, next);
+ZEND_METHOD(DirectoryIterator, seek);
+ZEND_METHOD(FilesystemIterator, __construct);
+ZEND_METHOD(FilesystemIterator, rewind);
+ZEND_METHOD(FilesystemIterator, key);
+ZEND_METHOD(FilesystemIterator, current);
+ZEND_METHOD(FilesystemIterator, getFlags);
+ZEND_METHOD(FilesystemIterator, setFlags);
+ZEND_METHOD(RecursiveDirectoryIterator, __construct);
+ZEND_METHOD(RecursiveDirectoryIterator, hasChildren);
+ZEND_METHOD(RecursiveDirectoryIterator, getChildren);
+ZEND_METHOD(RecursiveDirectoryIterator, getSubPath);
+ZEND_METHOD(RecursiveDirectoryIterator, getSubPathname);
+#if defined(HAVE_GLOB)
+ZEND_METHOD(GlobIterator, __construct);
+#endif
+#if defined(HAVE_GLOB)
+ZEND_METHOD(GlobIterator, count);
+#endif
+ZEND_METHOD(SplFileObject, __construct);
+ZEND_METHOD(SplFileObject, rewind);
+ZEND_METHOD(SplFileObject, eof);
+ZEND_METHOD(SplFileObject, valid);
+ZEND_METHOD(SplFileObject, fgets);
+ZEND_METHOD(SplFileObject, fread);
+ZEND_METHOD(SplFileObject, fgetcsv);
+ZEND_METHOD(SplFileObject, fputcsv);
+ZEND_METHOD(SplFileObject, setCsvControl);
+ZEND_METHOD(SplFileObject, getCsvControl);
+ZEND_METHOD(SplFileObject, flock);
+ZEND_METHOD(SplFileObject, fflush);
+ZEND_METHOD(SplFileObject, ftell);
+ZEND_METHOD(SplFileObject, fseek);
+ZEND_METHOD(SplFileObject, fgetc);
+ZEND_METHOD(SplFileObject, fpassthru);
+ZEND_METHOD(SplFileObject, fscanf);
+ZEND_METHOD(SplFileObject, fwrite);
+ZEND_METHOD(SplFileObject, fstat);
+ZEND_METHOD(SplFileObject, ftruncate);
+ZEND_METHOD(SplFileObject, current);
+ZEND_METHOD(SplFileObject, key);
+ZEND_METHOD(SplFileObject, next);
+ZEND_METHOD(SplFileObject, setFlags);
+ZEND_METHOD(SplFileObject, getFlags);
+ZEND_METHOD(SplFileObject, setMaxLineLen);
+ZEND_METHOD(SplFileObject, getMaxLineLen);
+ZEND_METHOD(SplFileObject, hasChildren);
+ZEND_METHOD(SplFileObject, getChildren);
+ZEND_METHOD(SplFileObject, seek);
+ZEND_METHOD(SplTempFileObject, __construct);
+
+
+static const zend_function_entry class_SplFileInfo_methods[] = {
+       ZEND_ME(SplFileInfo, __construct, arginfo_class_SplFileInfo___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getPath, arginfo_class_SplFileInfo_getPath, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getFilename, arginfo_class_SplFileInfo_getFilename, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getExtension, arginfo_class_SplFileInfo_getExtension, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getBasename, arginfo_class_SplFileInfo_getBasename, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getPathname, arginfo_class_SplFileInfo_getPathname, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getPerms, arginfo_class_SplFileInfo_getPerms, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getInode, arginfo_class_SplFileInfo_getInode, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getSize, arginfo_class_SplFileInfo_getSize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getOwner, arginfo_class_SplFileInfo_getOwner, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getGroup, arginfo_class_SplFileInfo_getGroup, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getATime, arginfo_class_SplFileInfo_getATime, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getMTime, arginfo_class_SplFileInfo_getMTime, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getCTime, arginfo_class_SplFileInfo_getCTime, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getType, arginfo_class_SplFileInfo_getType, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isWritable, arginfo_class_SplFileInfo_isWritable, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isReadable, arginfo_class_SplFileInfo_isReadable, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isExecutable, arginfo_class_SplFileInfo_isExecutable, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isFile, arginfo_class_SplFileInfo_isFile, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isDir, arginfo_class_SplFileInfo_isDir, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, isLink, arginfo_class_SplFileInfo_isLink, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getLinkTarget, arginfo_class_SplFileInfo_getLinkTarget, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getRealPath, arginfo_class_SplFileInfo_getRealPath, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getFileInfo, arginfo_class_SplFileInfo_getFileInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, getPathInfo, arginfo_class_SplFileInfo_getPathInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, openFile, arginfo_class_SplFileInfo_openFile, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, setFileClass, arginfo_class_SplFileInfo_setFileClass, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, setInfoClass, arginfo_class_SplFileInfo_setInfoClass, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplFileInfo, __toString, getPathname, arginfo_class_SplFileInfo___toString, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, __debugInfo, arginfo_class_SplFileInfo___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileInfo, _bad_state_ex, arginfo_class_SplFileInfo__bad_state_ex, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_DirectoryIterator_methods[] = {
+       ZEND_ME(DirectoryIterator, __construct, arginfo_class_DirectoryIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, getFilename, arginfo_class_DirectoryIterator_getFilename, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, getExtension, arginfo_class_DirectoryIterator_getExtension, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, getBasename, arginfo_class_DirectoryIterator_getBasename, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, isDot, arginfo_class_DirectoryIterator_isDot, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, rewind, arginfo_class_DirectoryIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, valid, arginfo_class_DirectoryIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, key, arginfo_class_DirectoryIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, current, arginfo_class_DirectoryIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, next, arginfo_class_DirectoryIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(DirectoryIterator, seek, arginfo_class_DirectoryIterator_seek, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(DirectoryIterator, __toString, getFilename, arginfo_class_DirectoryIterator___toString, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_FilesystemIterator_methods[] = {
+       ZEND_ME(FilesystemIterator, __construct, arginfo_class_FilesystemIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilesystemIterator, rewind, arginfo_class_FilesystemIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilesystemIterator, key, arginfo_class_FilesystemIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilesystemIterator, current, arginfo_class_FilesystemIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilesystemIterator, getFlags, arginfo_class_FilesystemIterator_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilesystemIterator, setFlags, arginfo_class_FilesystemIterator_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveDirectoryIterator_methods[] = {
+       ZEND_ME(RecursiveDirectoryIterator, __construct, arginfo_class_RecursiveDirectoryIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveDirectoryIterator, hasChildren, arginfo_class_RecursiveDirectoryIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveDirectoryIterator, getChildren, arginfo_class_RecursiveDirectoryIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveDirectoryIterator, getSubPath, arginfo_class_RecursiveDirectoryIterator_getSubPath, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveDirectoryIterator, getSubPathname, arginfo_class_RecursiveDirectoryIterator_getSubPathname, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_GlobIterator_methods[] = {
+#if defined(HAVE_GLOB)
+       ZEND_ME(GlobIterator, __construct, arginfo_class_GlobIterator___construct, ZEND_ACC_PUBLIC)
+#endif
+#if defined(HAVE_GLOB)
+       ZEND_ME(GlobIterator, count, arginfo_class_GlobIterator_count, ZEND_ACC_PUBLIC)
+#endif
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplFileObject_methods[] = {
+       ZEND_ME(SplFileObject, __construct, arginfo_class_SplFileObject___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, rewind, arginfo_class_SplFileObject_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, eof, arginfo_class_SplFileObject_eof, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, valid, arginfo_class_SplFileObject_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fgets, arginfo_class_SplFileObject_fgets, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fread, arginfo_class_SplFileObject_fread, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fgetcsv, arginfo_class_SplFileObject_fgetcsv, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fputcsv, arginfo_class_SplFileObject_fputcsv, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, setCsvControl, arginfo_class_SplFileObject_setCsvControl, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, getCsvControl, arginfo_class_SplFileObject_getCsvControl, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, flock, arginfo_class_SplFileObject_flock, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fflush, arginfo_class_SplFileObject_fflush, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, ftell, arginfo_class_SplFileObject_ftell, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fseek, arginfo_class_SplFileObject_fseek, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fgetc, arginfo_class_SplFileObject_fgetc, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fpassthru, arginfo_class_SplFileObject_fpassthru, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fscanf, arginfo_class_SplFileObject_fscanf, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fwrite, arginfo_class_SplFileObject_fwrite, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, fstat, arginfo_class_SplFileObject_fstat, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, ftruncate, arginfo_class_SplFileObject_ftruncate, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, current, arginfo_class_SplFileObject_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, key, arginfo_class_SplFileObject_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, next, arginfo_class_SplFileObject_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, setFlags, arginfo_class_SplFileObject_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, getFlags, arginfo_class_SplFileObject_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, setMaxLineLen, arginfo_class_SplFileObject_setMaxLineLen, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, getMaxLineLen, arginfo_class_SplFileObject_getMaxLineLen, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, hasChildren, arginfo_class_SplFileObject_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, getChildren, arginfo_class_SplFileObject_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFileObject, seek, arginfo_class_SplFileObject_seek, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplFileObject, getCurrentLine, fgets, arginfo_class_SplFileObject_getCurrentLine, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplFileObject, __toString, fgets, arginfo_class_SplFileObject___toString, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplTempFileObject_methods[] = {
+       ZEND_ME(SplTempFileObject, __construct, arginfo_class_SplTempFileObject___construct, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
index c4fb6f292ed907d8cdfc9b8e3d95a2878b53358e..306aefa5d850a6f2b3628778ef2693f2678207d2 100644 (file)
@@ -555,7 +555,7 @@ static HashTable *spl_dllist_object_get_gc(zend_object *obj, zval **gc_data, int
 
 /* {{{ proto bool SplDoublyLinkedList::push(mixed value)
           Push $value on the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, push)
+PHP_METHOD(SplDoublyLinkedList, push)
 {
        zval *value;
        spl_dllist_object *intern;
@@ -571,7 +571,7 @@ SPL_METHOD(SplDoublyLinkedList, push)
 
 /* {{{ proto bool SplDoublyLinkedList::unshift(mixed value)
           Unshift $value on the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, unshift)
+PHP_METHOD(SplDoublyLinkedList, unshift)
 {
        zval *value;
        spl_dllist_object *intern;
@@ -587,7 +587,7 @@ SPL_METHOD(SplDoublyLinkedList, unshift)
 
 /* {{{ proto mixed SplDoublyLinkedList::pop()
           Pop an element out of the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, pop)
+PHP_METHOD(SplDoublyLinkedList, pop)
 {
        spl_dllist_object *intern;
 
@@ -607,7 +607,7 @@ SPL_METHOD(SplDoublyLinkedList, pop)
 
 /* {{{ proto mixed SplDoublyLinkedList::shift()
           Shift an element out of the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, shift)
+PHP_METHOD(SplDoublyLinkedList, shift)
 {
        spl_dllist_object *intern;
 
@@ -627,7 +627,7 @@ SPL_METHOD(SplDoublyLinkedList, shift)
 
 /* {{{ proto mixed SplDoublyLinkedList::top()
           Peek at the top element of the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, top)
+PHP_METHOD(SplDoublyLinkedList, top)
 {
        zval *value;
        spl_dllist_object *intern;
@@ -650,7 +650,7 @@ SPL_METHOD(SplDoublyLinkedList, top)
 
 /* {{{ proto mixed SplDoublyLinkedList::bottom()
           Peek at the bottom element of the SplDoublyLinkedList */
-SPL_METHOD(SplDoublyLinkedList, bottom)
+PHP_METHOD(SplDoublyLinkedList, bottom)
 {
        zval *value;
        spl_dllist_object *intern;
@@ -673,7 +673,7 @@ SPL_METHOD(SplDoublyLinkedList, bottom)
 
 /* {{{ proto int SplDoublyLinkedList::count()
  Return the number of elements in the datastructure. */
-SPL_METHOD(SplDoublyLinkedList, count)
+PHP_METHOD(SplDoublyLinkedList, count)
 {
        zend_long count;
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
@@ -689,7 +689,7 @@ SPL_METHOD(SplDoublyLinkedList, count)
 
 /* {{{ proto int SplDoublyLinkedList::isEmpty()
  Return true if the SplDoublyLinkedList is empty. */
-SPL_METHOD(SplDoublyLinkedList, isEmpty)
+PHP_METHOD(SplDoublyLinkedList, isEmpty)
 {
        zend_long count;
 
@@ -704,7 +704,7 @@ SPL_METHOD(SplDoublyLinkedList, isEmpty)
 
 /* {{{ proto int SplDoublyLinkedList::setIteratorMode(int mode)
  Set the mode of iteration */
-SPL_METHOD(SplDoublyLinkedList, setIteratorMode)
+PHP_METHOD(SplDoublyLinkedList, setIteratorMode)
 {
        zend_long value;
        spl_dllist_object *intern;
@@ -729,7 +729,7 @@ SPL_METHOD(SplDoublyLinkedList, setIteratorMode)
 
 /* {{{ proto int SplDoublyLinkedList::getIteratorMode()
  Return the mode of iteration */
-SPL_METHOD(SplDoublyLinkedList, getIteratorMode)
+PHP_METHOD(SplDoublyLinkedList, getIteratorMode)
 {
        spl_dllist_object *intern;
 
@@ -745,7 +745,7 @@ SPL_METHOD(SplDoublyLinkedList, getIteratorMode)
 
 /* {{{ proto bool SplDoublyLinkedList::offsetExists(mixed index)
  Returns whether the requested $index exists. */
-SPL_METHOD(SplDoublyLinkedList, offsetExists)
+PHP_METHOD(SplDoublyLinkedList, offsetExists)
 {
        zval              *zindex;
        spl_dllist_object *intern;
@@ -763,7 +763,7 @@ SPL_METHOD(SplDoublyLinkedList, offsetExists)
 
 /* {{{ proto mixed SplDoublyLinkedList::offsetGet(mixed index)
  Returns the value at the specified $index. */
-SPL_METHOD(SplDoublyLinkedList, offsetGet)
+PHP_METHOD(SplDoublyLinkedList, offsetGet)
 {
        zval                  *zindex;
        zend_long                   index;
@@ -795,7 +795,7 @@ SPL_METHOD(SplDoublyLinkedList, offsetGet)
 
 /* {{{ proto void SplDoublyLinkedList::offsetSet(mixed index, mixed newval)
  Sets the value at the specified $index to $newval. */
-SPL_METHOD(SplDoublyLinkedList, offsetSet)
+PHP_METHOD(SplDoublyLinkedList, offsetSet)
 {
        zval                  *zindex, *value;
        spl_dllist_object     *intern;
@@ -848,7 +848,7 @@ SPL_METHOD(SplDoublyLinkedList, offsetSet)
 
 /* {{{ proto void SplDoublyLinkedList::offsetUnset(mixed index)
  Unsets the value at the specified $index. */
-SPL_METHOD(SplDoublyLinkedList, offsetUnset)
+PHP_METHOD(SplDoublyLinkedList, offsetUnset)
 {
        zval                  *zindex;
        zend_long             index;
@@ -1025,7 +1025,7 @@ static void spl_dllist_it_move_forward(zend_object_iterator *iter) /* {{{ */
 
 /* {{{  proto int SplDoublyLinkedList::key()
    Return current array key */
-SPL_METHOD(SplDoublyLinkedList, key)
+PHP_METHOD(SplDoublyLinkedList, key)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
 
@@ -1039,7 +1039,7 @@ SPL_METHOD(SplDoublyLinkedList, key)
 
 /* {{{ proto void SplDoublyLinkedList::prev()
    Move to next entry */
-SPL_METHOD(SplDoublyLinkedList, prev)
+PHP_METHOD(SplDoublyLinkedList, prev)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
 
@@ -1053,7 +1053,7 @@ SPL_METHOD(SplDoublyLinkedList, prev)
 
 /* {{{ proto void SplDoublyLinkedList::next()
    Move to next entry */
-SPL_METHOD(SplDoublyLinkedList, next)
+PHP_METHOD(SplDoublyLinkedList, next)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
 
@@ -1067,7 +1067,7 @@ SPL_METHOD(SplDoublyLinkedList, next)
 
 /* {{{ proto bool SplDoublyLinkedList::valid()
    Check whether the datastructure contains more entries */
-SPL_METHOD(SplDoublyLinkedList, valid)
+PHP_METHOD(SplDoublyLinkedList, valid)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
 
@@ -1081,7 +1081,7 @@ SPL_METHOD(SplDoublyLinkedList, valid)
 
 /* {{{ proto void SplDoublyLinkedList::rewind()
    Rewind the datastructure back to the start */
-SPL_METHOD(SplDoublyLinkedList, rewind)
+PHP_METHOD(SplDoublyLinkedList, rewind)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
 
@@ -1095,7 +1095,7 @@ SPL_METHOD(SplDoublyLinkedList, rewind)
 
 /* {{{ proto mixed SplDoublyLinkedList::current()
    Return current datastructure entry */
-SPL_METHOD(SplDoublyLinkedList, current)
+PHP_METHOD(SplDoublyLinkedList, current)
 {
        spl_dllist_object     *intern  = Z_SPLDLLIST_P(ZEND_THIS);
        spl_ptr_llist_element *element = intern->traverse_pointer;
@@ -1116,7 +1116,7 @@ SPL_METHOD(SplDoublyLinkedList, current)
 
 /* {{{ proto string SplDoublyLinkedList::serialize()
  Serializes storage */
-SPL_METHOD(SplDoublyLinkedList, serialize)
+PHP_METHOD(SplDoublyLinkedList, serialize)
 {
        spl_dllist_object     *intern   = Z_SPLDLLIST_P(ZEND_THIS);
        smart_str              buf      = {0};
@@ -1154,7 +1154,7 @@ SPL_METHOD(SplDoublyLinkedList, serialize)
 
 /* {{{ proto void SplDoublyLinkedList::unserialize(string serialized)
  Unserializes storage */
-SPL_METHOD(SplDoublyLinkedList, unserialize)
+PHP_METHOD(SplDoublyLinkedList, unserialize)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
        zval *flags, *elem;
@@ -1215,7 +1215,7 @@ error:
 } /* }}} */
 
 /* {{{ proto array SplDoublyLinkedList::__serialize() */
-SPL_METHOD(SplDoublyLinkedList, __serialize)
+PHP_METHOD(SplDoublyLinkedList, __serialize)
 {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
        spl_ptr_llist_element *current = intern->llist->head;
@@ -1247,7 +1247,7 @@ SPL_METHOD(SplDoublyLinkedList, __serialize)
 } /* }}} */
 
 /* {{{ proto void SplDoublyLinkedList::__unserialize(array serialized) */
-SPL_METHOD(SplDoublyLinkedList, __unserialize) {
+PHP_METHOD(SplDoublyLinkedList, __unserialize) {
        spl_dllist_object *intern = Z_SPLDLLIST_P(ZEND_THIS);
        HashTable *data;
        zval *flags_zv, *storage_zv, *members_zv, *elem;
@@ -1278,7 +1278,7 @@ SPL_METHOD(SplDoublyLinkedList, __unserialize) {
 
 /* {{{ proto void SplDoublyLinkedList::add(mixed index, mixed newval)
  Inserts a new entry before the specified $index consisting of $newval. */
-SPL_METHOD(SplDoublyLinkedList, add)
+PHP_METHOD(SplDoublyLinkedList, add)
 {
        zval                  *zindex, *value;
        spl_dllist_object     *intern;
@@ -1331,7 +1331,7 @@ SPL_METHOD(SplDoublyLinkedList, add)
 } /* }}} */
 
 /* {{{ proto void SplDoublyLinkedList::__debugInfo() */
-SPL_METHOD(SplDoublyLinkedList, __debugInfo)
+PHP_METHOD(SplDoublyLinkedList, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -1380,52 +1380,9 @@ zend_object_iterator *spl_dllist_get_iterator(zend_class_entry *ce, zval *object
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_SplQueue[] = {
-       SPL_MA(SplQueue, enqueue, SplDoublyLinkedList, push,  arginfo_class_SplQueue_enqueue, ZEND_ACC_PUBLIC)
-       SPL_MA(SplQueue, dequeue, SplDoublyLinkedList, shift, arginfo_class_SplQueue_dequeue, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_SplDoublyLinkedList[] = {
-       SPL_ME(SplDoublyLinkedList, pop,             arginfo_class_SplDoublyLinkedList_pop,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, shift,           arginfo_class_SplDoublyLinkedList_shift,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, push,            arginfo_class_SplDoublyLinkedList_push,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, unshift,         arginfo_class_SplDoublyLinkedList_unshift,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, top,             arginfo_class_SplDoublyLinkedList_top,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, bottom,          arginfo_class_SplDoublyLinkedList_bottom,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, isEmpty,         arginfo_class_SplDoublyLinkedList_isEmpty,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, setIteratorMode, arginfo_class_SplDoublyLinkedList_setIteratorMode, ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, getIteratorMode, arginfo_class_SplDoublyLinkedList_getIteratorMode,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, __debugInfo,     arginfo_class_SplDoublyLinkedList___debugInfo,            ZEND_ACC_PUBLIC)
-       /* Countable */
-       SPL_ME(SplDoublyLinkedList, count,           arginfo_class_SplDoublyLinkedList_count,            ZEND_ACC_PUBLIC)
-       /* ArrayAccess */
-       SPL_ME(SplDoublyLinkedList, offsetExists,    arginfo_class_SplDoublyLinkedList_offsetExists,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, offsetGet,       arginfo_class_SplDoublyLinkedList_offsetGet,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, offsetSet,       arginfo_class_SplDoublyLinkedList_offsetSet,       ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, offsetUnset,     arginfo_class_SplDoublyLinkedList_offsetUnset,       ZEND_ACC_PUBLIC)
-
-       SPL_ME(SplDoublyLinkedList, add,             arginfo_class_SplDoublyLinkedList_add,       ZEND_ACC_PUBLIC)
-
-       /* Iterator */
-       SPL_ME(SplDoublyLinkedList, rewind,          arginfo_class_SplDoublyLinkedList_rewind,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, current,         arginfo_class_SplDoublyLinkedList_current,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, key,             arginfo_class_SplDoublyLinkedList_key,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, next,            arginfo_class_SplDoublyLinkedList_next,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, prev,            arginfo_class_SplDoublyLinkedList_prev,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList, valid,           arginfo_class_SplDoublyLinkedList_valid,            ZEND_ACC_PUBLIC)
-       /* Serializable */
-       SPL_ME(SplDoublyLinkedList,  unserialize,    arginfo_class_SplDoublyLinkedList_unserialize,      ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList,  serialize,      arginfo_class_SplDoublyLinkedList_serialize,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList,  __unserialize,    arginfo_class_SplDoublyLinkedList___unserialize,    ZEND_ACC_PUBLIC)
-       SPL_ME(SplDoublyLinkedList,  __serialize,      arginfo_class_SplDoublyLinkedList___serialize,          ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-/* }}} */
-
 PHP_MINIT_FUNCTION(spl_dllist) /* {{{ */
 {
-       REGISTER_SPL_STD_CLASS_EX(SplDoublyLinkedList, spl_dllist_object_new, spl_funcs_SplDoublyLinkedList);
+       REGISTER_SPL_STD_CLASS_EX(SplDoublyLinkedList, spl_dllist_object_new, class_SplDoublyLinkedList_methods);
        memcpy(&spl_handler_SplDoublyLinkedList, &std_object_handlers, sizeof(zend_object_handlers));
 
        spl_handler_SplDoublyLinkedList.offset = XtOffsetOf(spl_dllist_object, std);
@@ -1447,8 +1404,8 @@ PHP_MINIT_FUNCTION(spl_dllist) /* {{{ */
 
        spl_ce_SplDoublyLinkedList->get_iterator = spl_dllist_get_iterator;
 
-       REGISTER_SPL_SUB_CLASS_EX(SplQueue,           SplDoublyLinkedList,        spl_dllist_object_new, spl_funcs_SplQueue);
-       REGISTER_SPL_SUB_CLASS_EX(SplStack,           SplDoublyLinkedList,        spl_dllist_object_new, NULL);
+       REGISTER_SPL_SUB_CLASS_EX(SplQueue,           SplDoublyLinkedList,        spl_dllist_object_new, class_SplQueue_methods);
+       REGISTER_SPL_SUB_CLASS_EX(SplStack,           SplDoublyLinkedList,        spl_dllist_object_new, class_SplStack_methods);
 
        spl_ce_SplQueue->get_iterator = spl_dllist_get_iterator;
        spl_ce_SplStack->get_iterator = spl_dllist_get_iterator;
index 0cb91d8ddf5489df513597ee4d009a31b602e914..3cda7de01f6794d714f5b07ae682db89bd0ff8ca 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable
 {
     /**
@@ -109,10 +111,14 @@ class SplQueue extends SplDoublyLinkedList
     /**
      * @param mixed $value
      * @return void
+     * @alias SplDoublyLinkedList::push
      */
     public function enqueue($value) {}
 
-    /** @return mixed */
+    /**
+     * @return mixed
+     * @alias SplDoublyLinkedList::shift
+     */
     public function dequeue() {}
 }
 
index c5741cd120f7bc8e660e8e049bbb34050ebfb583..7e1b327a8b7d8c9d6bbef1804ca304d8bff2dfa5 100644 (file)
@@ -69,3 +69,74 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_SplQueue_enqueue arginfo_class_SplDoublyLinkedList_push
 
 #define arginfo_class_SplQueue_dequeue arginfo_class_SplDoublyLinkedList_pop
+
+
+ZEND_METHOD(SplDoublyLinkedList, add);
+ZEND_METHOD(SplDoublyLinkedList, pop);
+ZEND_METHOD(SplDoublyLinkedList, shift);
+ZEND_METHOD(SplDoublyLinkedList, push);
+ZEND_METHOD(SplDoublyLinkedList, unshift);
+ZEND_METHOD(SplDoublyLinkedList, top);
+ZEND_METHOD(SplDoublyLinkedList, bottom);
+ZEND_METHOD(SplDoublyLinkedList, __debugInfo);
+ZEND_METHOD(SplDoublyLinkedList, count);
+ZEND_METHOD(SplDoublyLinkedList, isEmpty);
+ZEND_METHOD(SplDoublyLinkedList, setIteratorMode);
+ZEND_METHOD(SplDoublyLinkedList, getIteratorMode);
+ZEND_METHOD(SplDoublyLinkedList, offsetExists);
+ZEND_METHOD(SplDoublyLinkedList, offsetGet);
+ZEND_METHOD(SplDoublyLinkedList, offsetSet);
+ZEND_METHOD(SplDoublyLinkedList, offsetUnset);
+ZEND_METHOD(SplDoublyLinkedList, rewind);
+ZEND_METHOD(SplDoublyLinkedList, current);
+ZEND_METHOD(SplDoublyLinkedList, key);
+ZEND_METHOD(SplDoublyLinkedList, prev);
+ZEND_METHOD(SplDoublyLinkedList, next);
+ZEND_METHOD(SplDoublyLinkedList, valid);
+ZEND_METHOD(SplDoublyLinkedList, unserialize);
+ZEND_METHOD(SplDoublyLinkedList, serialize);
+ZEND_METHOD(SplDoublyLinkedList, __serialize);
+ZEND_METHOD(SplDoublyLinkedList, __unserialize);
+
+
+static const zend_function_entry class_SplDoublyLinkedList_methods[] = {
+       ZEND_ME(SplDoublyLinkedList, add, arginfo_class_SplDoublyLinkedList_add, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, pop, arginfo_class_SplDoublyLinkedList_pop, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, shift, arginfo_class_SplDoublyLinkedList_shift, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, push, arginfo_class_SplDoublyLinkedList_push, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, unshift, arginfo_class_SplDoublyLinkedList_unshift, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, top, arginfo_class_SplDoublyLinkedList_top, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, bottom, arginfo_class_SplDoublyLinkedList_bottom, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, __debugInfo, arginfo_class_SplDoublyLinkedList___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, count, arginfo_class_SplDoublyLinkedList_count, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, isEmpty, arginfo_class_SplDoublyLinkedList_isEmpty, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, setIteratorMode, arginfo_class_SplDoublyLinkedList_setIteratorMode, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, getIteratorMode, arginfo_class_SplDoublyLinkedList_getIteratorMode, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, offsetExists, arginfo_class_SplDoublyLinkedList_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, offsetGet, arginfo_class_SplDoublyLinkedList_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, offsetSet, arginfo_class_SplDoublyLinkedList_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, offsetUnset, arginfo_class_SplDoublyLinkedList_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, rewind, arginfo_class_SplDoublyLinkedList_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, current, arginfo_class_SplDoublyLinkedList_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, key, arginfo_class_SplDoublyLinkedList_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, prev, arginfo_class_SplDoublyLinkedList_prev, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, next, arginfo_class_SplDoublyLinkedList_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, valid, arginfo_class_SplDoublyLinkedList_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, unserialize, arginfo_class_SplDoublyLinkedList_unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, serialize, arginfo_class_SplDoublyLinkedList_serialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, __serialize, arginfo_class_SplDoublyLinkedList___serialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplDoublyLinkedList, __unserialize, arginfo_class_SplDoublyLinkedList___unserialize, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplQueue_methods[] = {
+       ZEND_MALIAS(SplDoublyLinkedList, enqueue, push, arginfo_class_SplQueue_enqueue, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplDoublyLinkedList, dequeue, shift, arginfo_class_SplQueue_dequeue, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplStack_methods[] = {
+       ZEND_FE_END
+};
index ec037d9da60bb131bc64f3f5d0b7ac647f06f61f..2b86a85d5155d4c6600a0fba73722222c3fb8b32 100644 (file)
@@ -521,7 +521,7 @@ static int spl_fixedarray_object_count_elements(zend_object *object, zend_long *
 
 /* {{{ proto SplFixedArray::__construct([int size])
 */
-SPL_METHOD(SplFixedArray, __construct)
+PHP_METHOD(SplFixedArray, __construct)
 {
        zval *object = ZEND_THIS;
        spl_fixedarray_object *intern;
@@ -549,7 +549,7 @@ SPL_METHOD(SplFixedArray, __construct)
 
 /* {{{ proto SplFixedArray::__wakeup()
 */
-SPL_METHOD(SplFixedArray, __wakeup)
+PHP_METHOD(SplFixedArray, __wakeup)
 {
        spl_fixedarray_object *intern = Z_SPLFIXEDARRAY_P(ZEND_THIS);
        HashTable *intern_ht = zend_std_get_properties(Z_OBJ_P(ZEND_THIS));
@@ -579,7 +579,7 @@ SPL_METHOD(SplFixedArray, __wakeup)
 
 /* {{{ proto int SplFixedArray::count(void)
 */
-SPL_METHOD(SplFixedArray, count)
+PHP_METHOD(SplFixedArray, count)
 {
        zval *object = ZEND_THIS;
        spl_fixedarray_object *intern;
@@ -595,7 +595,7 @@ SPL_METHOD(SplFixedArray, count)
 
 /* {{{ proto object SplFixedArray::toArray()
 */
-SPL_METHOD(SplFixedArray, toArray)
+PHP_METHOD(SplFixedArray, toArray)
 {
        spl_fixedarray_object *intern;
 
@@ -621,7 +621,7 @@ SPL_METHOD(SplFixedArray, toArray)
 
 /* {{{ proto object SplFixedArray::fromArray(array array[, bool save_indexes])
 */
-SPL_METHOD(SplFixedArray, fromArray)
+PHP_METHOD(SplFixedArray, fromArray)
 {
        zval *data;
        spl_fixedarray array;
@@ -686,7 +686,7 @@ SPL_METHOD(SplFixedArray, fromArray)
 
 /* {{{ proto int SplFixedArray::getSize(void)
 */
-SPL_METHOD(SplFixedArray, getSize)
+PHP_METHOD(SplFixedArray, getSize)
 {
        zval *object = ZEND_THIS;
        spl_fixedarray_object *intern;
@@ -702,7 +702,7 @@ SPL_METHOD(SplFixedArray, getSize)
 
 /* {{{ proto bool SplFixedArray::setSize(int size)
 */
-SPL_METHOD(SplFixedArray, setSize)
+PHP_METHOD(SplFixedArray, setSize)
 {
        zval *object = ZEND_THIS;
        spl_fixedarray_object *intern;
@@ -726,7 +726,7 @@ SPL_METHOD(SplFixedArray, setSize)
 
 /* {{{ proto bool SplFixedArray::offsetExists(mixed $index)
  Returns whether the requested $index exists. */
-SPL_METHOD(SplFixedArray, offsetExists)
+PHP_METHOD(SplFixedArray, offsetExists)
 {
        zval                  *zindex;
        spl_fixedarray_object  *intern;
@@ -742,7 +742,7 @@ SPL_METHOD(SplFixedArray, offsetExists)
 
 /* {{{ proto mixed SplFixedArray::offsetGet(mixed $index)
  Returns the value at the specified $index. */
-SPL_METHOD(SplFixedArray, offsetGet)
+PHP_METHOD(SplFixedArray, offsetGet)
 {
        zval *zindex, *value;
        spl_fixedarray_object  *intern;
@@ -763,7 +763,7 @@ SPL_METHOD(SplFixedArray, offsetGet)
 
 /* {{{ proto void SplFixedArray::offsetSet(mixed $index, mixed $newval)
  Sets the value at the specified $index to $newval. */
-SPL_METHOD(SplFixedArray, offsetSet)
+PHP_METHOD(SplFixedArray, offsetSet)
 {
        zval                  *zindex, *value;
        spl_fixedarray_object  *intern;
@@ -779,7 +779,7 @@ SPL_METHOD(SplFixedArray, offsetSet)
 
 /* {{{ proto void SplFixedArray::offsetUnset(mixed $index)
  Unsets the value at the specified $index. */
-SPL_METHOD(SplFixedArray, offsetUnset)
+PHP_METHOD(SplFixedArray, offsetUnset)
 {
        zval                  *zindex;
        spl_fixedarray_object  *intern;
@@ -879,7 +879,7 @@ static void spl_fixedarray_it_move_forward(zend_object_iterator *iter) /* {{{ */
 
 /* {{{  proto int SplFixedArray::key()
    Return current array key */
-SPL_METHOD(SplFixedArray, key)
+PHP_METHOD(SplFixedArray, key)
 {
        spl_fixedarray_object *intern = Z_SPLFIXEDARRAY_P(ZEND_THIS);
 
@@ -893,7 +893,7 @@ SPL_METHOD(SplFixedArray, key)
 
 /* {{{ proto void SplFixedArray::next()
    Move to next entry */
-SPL_METHOD(SplFixedArray, next)
+PHP_METHOD(SplFixedArray, next)
 {
        spl_fixedarray_object *intern = Z_SPLFIXEDARRAY_P(ZEND_THIS);
 
@@ -907,7 +907,7 @@ SPL_METHOD(SplFixedArray, next)
 
 /* {{{ proto bool SplFixedArray::valid()
    Check whether the datastructure contains more entries */
-SPL_METHOD(SplFixedArray, valid)
+PHP_METHOD(SplFixedArray, valid)
 {
        spl_fixedarray_object *intern = Z_SPLFIXEDARRAY_P(ZEND_THIS);
 
@@ -921,7 +921,7 @@ SPL_METHOD(SplFixedArray, valid)
 
 /* {{{ proto void SplFixedArray::rewind()
    Rewind the datastructure back to the start */
-SPL_METHOD(SplFixedArray, rewind)
+PHP_METHOD(SplFixedArray, rewind)
 {
        spl_fixedarray_object *intern = Z_SPLFIXEDARRAY_P(ZEND_THIS);
 
@@ -935,7 +935,7 @@ SPL_METHOD(SplFixedArray, rewind)
 
 /* {{{ proto mixed|NULL SplFixedArray::current()
    Return current datastructure entry */
-SPL_METHOD(SplFixedArray, current)
+PHP_METHOD(SplFixedArray, current)
 {
        zval zindex, *value;
        spl_fixedarray_object *intern  = Z_SPLFIXEDARRAY_P(ZEND_THIS);
@@ -990,31 +990,10 @@ zend_object_iterator *spl_fixedarray_get_iterator(zend_class_entry *ce, zval *ob
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_SplFixedArray[] = { /* {{{ */
-       SPL_ME(SplFixedArray, __construct,     arginfo_class_SplFixedArray___construct,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, __wakeup,        arginfo_class_SplFixedArray___wakeup,            ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, count,           arginfo_class_SplFixedArray_count,                       ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, toArray,         arginfo_class_SplFixedArray_toArray,                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, fromArray,       arginfo_class_SplFixedArray_fromArray,           ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
-       SPL_ME(SplFixedArray, getSize,         arginfo_class_SplFixedArray_getSize,                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, setSize,         arginfo_class_SplFixedArray_setSize,                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, offsetExists,    arginfo_class_SplFixedArray_offsetExists,        ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, offsetGet,       arginfo_class_SplFixedArray_offsetGet,           ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, offsetSet,       arginfo_class_SplFixedArray_offsetSet,           ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, offsetUnset,     arginfo_class_SplFixedArray_offsetUnset,         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, rewind,          arginfo_class_SplFixedArray_rewind,                      ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, current,         arginfo_class_SplFixedArray_current,                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, key,             arginfo_class_SplFixedArray_key,                         ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, next,            arginfo_class_SplFixedArray_next,                        ZEND_ACC_PUBLIC)
-       SPL_ME(SplFixedArray, valid,           arginfo_class_SplFixedArray_valid,                       ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-/* }}} */
-
 /* {{{ PHP_MINIT_FUNCTION */
 PHP_MINIT_FUNCTION(spl_fixedarray)
 {
-       REGISTER_SPL_STD_CLASS_EX(SplFixedArray, spl_fixedarray_new, spl_funcs_SplFixedArray);
+       REGISTER_SPL_STD_CLASS_EX(SplFixedArray, spl_fixedarray_new, class_SplFixedArray_methods);
        memcpy(&spl_handler_SplFixedArray, &std_object_handlers, sizeof(zend_object_handlers));
 
        spl_handler_SplFixedArray.offset          = XtOffsetOf(spl_fixedarray_object, std);
index 4785f8d6e1fe94f4053af264f0d8cf030c6bf602..d571524db26bc2850b0a815a6fd0b46109f99e6d 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class SplFixedArray implements Iterator, ArrayAccess, Countable
 {
     public function __construct(int $size = 0) {}
index 2791b291cc53eaf80e664d831eb5f03046ca27e9..d76db04a5ea1dbdeed7be725d85597813d05c79e 100644 (file)
@@ -44,3 +44,42 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_SplFixedArray_next arginfo_class_SplFixedArray___wakeup
 
 #define arginfo_class_SplFixedArray_valid arginfo_class_SplFixedArray___wakeup
+
+
+ZEND_METHOD(SplFixedArray, __construct);
+ZEND_METHOD(SplFixedArray, __wakeup);
+ZEND_METHOD(SplFixedArray, count);
+ZEND_METHOD(SplFixedArray, toArray);
+ZEND_METHOD(SplFixedArray, fromArray);
+ZEND_METHOD(SplFixedArray, getSize);
+ZEND_METHOD(SplFixedArray, setSize);
+ZEND_METHOD(SplFixedArray, offsetExists);
+ZEND_METHOD(SplFixedArray, offsetGet);
+ZEND_METHOD(SplFixedArray, offsetSet);
+ZEND_METHOD(SplFixedArray, offsetUnset);
+ZEND_METHOD(SplFixedArray, rewind);
+ZEND_METHOD(SplFixedArray, current);
+ZEND_METHOD(SplFixedArray, key);
+ZEND_METHOD(SplFixedArray, next);
+ZEND_METHOD(SplFixedArray, valid);
+
+
+static const zend_function_entry class_SplFixedArray_methods[] = {
+       ZEND_ME(SplFixedArray, __construct, arginfo_class_SplFixedArray___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, __wakeup, arginfo_class_SplFixedArray___wakeup, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, count, arginfo_class_SplFixedArray_count, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, toArray, arginfo_class_SplFixedArray_toArray, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, fromArray, arginfo_class_SplFixedArray_fromArray, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+       ZEND_ME(SplFixedArray, getSize, arginfo_class_SplFixedArray_getSize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, setSize, arginfo_class_SplFixedArray_setSize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, offsetExists, arginfo_class_SplFixedArray_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, offsetGet, arginfo_class_SplFixedArray_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, offsetSet, arginfo_class_SplFixedArray_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, offsetUnset, arginfo_class_SplFixedArray_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, rewind, arginfo_class_SplFixedArray_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, current, arginfo_class_SplFixedArray_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, key, arginfo_class_SplFixedArray_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, next, arginfo_class_SplFixedArray_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplFixedArray, valid, arginfo_class_SplFixedArray_valid, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
index 8d23eda47469d5a7a135e360389fdd5de185e848..b1f0653607539afbcdbc11e809923fb33b435dff 100644 (file)
@@ -31,7 +31,7 @@ typedef zend_object* (*create_object_func_t)(zend_class_entry *class_type);
        spl_register_sub_class(&spl_ce_ ## class_name, spl_ce_ ## parent_class_name, # class_name, obj_ctor, funcs);
 
 #define REGISTER_SPL_INTERFACE(class_name) \
-       spl_register_interface(&spl_ce_ ## class_name, # class_name, spl_funcs_ ## class_name);
+       spl_register_interface(&spl_ce_ ## class_name, # class_name, class_ ## class_name ## _methods);
 
 #define REGISTER_SPL_IMPLEMENTS(class_name, interface_name) \
        zend_class_implements(spl_ce_ ## class_name, 1, spl_ce_ ## interface_name);
@@ -64,15 +64,4 @@ int spl_add_classes(zend_class_entry *pce, zval *list, int sub, int allow, int c
 /* caller must efree(return) */
 zend_string *spl_gen_private_prop_name(zend_class_entry *ce, char *prop_name, int prop_len);
 
-#define SPL_ME(class_name, function_name, arg_info, flags) \
-       PHP_ME( spl_ ## class_name, function_name, arg_info, flags)
-
-#define SPL_ABSTRACT_ME(class_name, function_name, arg_info) \
-       ZEND_ABSTRACT_ME( spl_ ## class_name, function_name, arg_info)
-
-#define SPL_METHOD(class_name, function_name) \
-       PHP_METHOD(spl_ ## class_name, function_name)
-
-#define SPL_MA(class_name, function_name, alias_class, alias_function, arg_info, flags) \
-       PHP_MALIAS(spl_ ## alias_class, function_name, alias_function, arg_info, flags)
 #endif /* PHP_FUNCTIONS_H */
index 2b3b681f97fa910a92682ac0a25dac8699d182e5..42484a753b47960fde8e7aae5b089078e4930cda 100644 (file)
@@ -558,7 +558,7 @@ static HashTable *spl_pqueue_object_get_gc(zend_object *obj, zval **gc_data, int
 
 /* {{{ proto int SplHeap::count()
  Return the number of elements in the heap. */
-SPL_METHOD(SplHeap, count)
+PHP_METHOD(SplHeap, count)
 {
        zend_long count;
        spl_heap_object *intern = Z_SPLHEAP_P(ZEND_THIS);
@@ -574,7 +574,7 @@ SPL_METHOD(SplHeap, count)
 
 /* {{{ proto int SplHeap::isEmpty()
  Return true if the heap is empty. */
-SPL_METHOD(SplHeap, isEmpty)
+PHP_METHOD(SplHeap, isEmpty)
 {
        spl_heap_object *intern = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -588,7 +588,7 @@ SPL_METHOD(SplHeap, isEmpty)
 
 /* {{{ proto bool SplHeap::insert(mixed value)
           Push $value on the heap */
-SPL_METHOD(SplHeap, insert)
+PHP_METHOD(SplHeap, insert)
 {
        zval *value;
        spl_heap_object *intern;
@@ -613,7 +613,7 @@ SPL_METHOD(SplHeap, insert)
 
 /* {{{ proto mixed SplHeap::extract()
           extract the element out of the top of the heap */
-SPL_METHOD(SplHeap, extract)
+PHP_METHOD(SplHeap, extract)
 {
        spl_heap_object *intern;
 
@@ -637,7 +637,7 @@ SPL_METHOD(SplHeap, extract)
 
 /* {{{ proto bool SplPriorityQueue::insert(mixed value, mixed priority)
           Push $value with the priority $priodiry on the priorityqueue */
-SPL_METHOD(SplPriorityQueue, insert)
+PHP_METHOD(SplPriorityQueue, insert)
 {
        zval *data, *priority;
        spl_heap_object *intern;
@@ -665,7 +665,7 @@ SPL_METHOD(SplPriorityQueue, insert)
 
 /* {{{ proto mixed SplPriorityQueue::extract()
           extract the element out of the top of the priority queue */
-SPL_METHOD(SplPriorityQueue, extract)
+PHP_METHOD(SplPriorityQueue, extract)
 {
        spl_pqueue_elem elem;
        spl_heap_object *intern;
@@ -693,7 +693,7 @@ SPL_METHOD(SplPriorityQueue, extract)
 
 /* {{{ proto mixed SplPriorityQueue::top()
           Peek at the top element of the priority queue */
-SPL_METHOD(SplPriorityQueue, top)
+PHP_METHOD(SplPriorityQueue, top)
 {
        spl_heap_object *intern;
        spl_pqueue_elem *elem;
@@ -723,7 +723,7 @@ SPL_METHOD(SplPriorityQueue, top)
 
 /* {{{ proto int SplPriorityQueue::setExtractFlags(int flags)
  Set the flags of extraction*/
-SPL_METHOD(SplPriorityQueue, setExtractFlags)
+PHP_METHOD(SplPriorityQueue, setExtractFlags)
 {
        zend_long value;
        spl_heap_object *intern;
@@ -746,7 +746,7 @@ SPL_METHOD(SplPriorityQueue, setExtractFlags)
 
 /* {{{ proto int SplPriorityQueue::getExtractFlags()
  Get the flags of extraction*/
-SPL_METHOD(SplPriorityQueue, getExtractFlags)
+PHP_METHOD(SplPriorityQueue, getExtractFlags)
 {
        spl_heap_object *intern;
 
@@ -762,7 +762,7 @@ SPL_METHOD(SplPriorityQueue, getExtractFlags)
 
 /* {{{ proto int SplHeap::recoverFromCorruption()
  Recover from a corrupted state*/
-SPL_METHOD(SplHeap, recoverFromCorruption)
+PHP_METHOD(SplHeap, recoverFromCorruption)
 {
        spl_heap_object *intern;
 
@@ -780,7 +780,7 @@ SPL_METHOD(SplHeap, recoverFromCorruption)
 
 /* {{{ proto int SplHeap::isCorrupted()
  Tells if the heap is in a corrupted state*/
-SPL_METHOD(SplHeap, isCorrupted)
+PHP_METHOD(SplHeap, isCorrupted)
 {
        spl_heap_object *intern;
 
@@ -796,7 +796,7 @@ SPL_METHOD(SplHeap, isCorrupted)
 
 /* {{{ proto bool SplPriorityQueue::compare(mixed $value1, mixed $value2)
           compare the priorities */
-SPL_METHOD(SplPriorityQueue, compare)
+PHP_METHOD(SplPriorityQueue, compare)
 {
        zval *a, *b;
 
@@ -810,7 +810,7 @@ SPL_METHOD(SplPriorityQueue, compare)
 
 /* {{{ proto mixed SplHeap::top()
           Peek at the top element of the heap */
-SPL_METHOD(SplHeap, top)
+PHP_METHOD(SplHeap, top)
 {
        zval *value;
        spl_heap_object *intern;
@@ -839,7 +839,7 @@ SPL_METHOD(SplHeap, top)
 
 /* {{{ proto bool SplMinHeap::compare(mixed $value1, mixed $value2)
           compare the values */
-SPL_METHOD(SplMinHeap, compare)
+PHP_METHOD(SplMinHeap, compare)
 {
        zval *a, *b;
 
@@ -853,7 +853,7 @@ SPL_METHOD(SplMinHeap, compare)
 
 /* {{{ proto bool SplMaxHeap::compare(mixed $value1, mixed $value2)
           compare the values */
-SPL_METHOD(SplMaxHeap, compare)
+PHP_METHOD(SplMaxHeap, compare)
 {
        zval *a, *b;
 
@@ -949,7 +949,7 @@ static void spl_heap_it_move_forward(zend_object_iterator *iter) /* {{{ */
 
 /* {{{  proto int SplHeap::key()
    Return current array key */
-SPL_METHOD(SplHeap, key)
+PHP_METHOD(SplHeap, key)
 {
        spl_heap_object *intern = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -963,7 +963,7 @@ SPL_METHOD(SplHeap, key)
 
 /* {{{ proto void SplHeap::next()
    Move to next entry */
-SPL_METHOD(SplHeap, next)
+PHP_METHOD(SplHeap, next)
 {
        spl_heap_object *intern = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -977,7 +977,7 @@ SPL_METHOD(SplHeap, next)
 
 /* {{{ proto bool SplHeap::valid()
    Check whether the datastructure contains more entries */
-SPL_METHOD(SplHeap, valid)
+PHP_METHOD(SplHeap, valid)
 {
        spl_heap_object *intern = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -991,7 +991,7 @@ SPL_METHOD(SplHeap, valid)
 
 /* {{{ proto void SplHeap::rewind()
    Rewind the datastructure back to the start */
-SPL_METHOD(SplHeap, rewind)
+PHP_METHOD(SplHeap, rewind)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -1002,7 +1002,7 @@ SPL_METHOD(SplHeap, rewind)
 
 /* {{{ proto mixed|NULL SplHeap::current()
    Return current datastructure entry */
-SPL_METHOD(SplHeap, current)
+PHP_METHOD(SplHeap, current)
 {
        spl_heap_object *intern  = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -1021,7 +1021,7 @@ SPL_METHOD(SplHeap, current)
 
 /* {{{ proto mixed|NULL SplPriorityQueue::current()
    Return current datastructure entry */
-SPL_METHOD(SplPriorityQueue, current)
+PHP_METHOD(SplPriorityQueue, current)
 {
        spl_heap_object  *intern  = Z_SPLHEAP_P(ZEND_THIS);
 
@@ -1039,7 +1039,7 @@ SPL_METHOD(SplPriorityQueue, current)
 /* }}} */
 
 /* {{{ proto void SplHeap::__debugInfo() */
-SPL_METHOD(SplHeap, __debugInfo)
+PHP_METHOD(SplHeap, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -1049,7 +1049,7 @@ SPL_METHOD(SplHeap, __debugInfo)
 } /* }}} */
 
 /* {{{ proto void SplPriorityQueue::__debugInfo() */
-SPL_METHOD(SplPriorityQueue, __debugInfo)
+PHP_METHOD(SplPriorityQueue, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -1130,57 +1130,9 @@ zend_object_iterator *spl_pqueue_get_iterator(zend_class_entry *ce, zval *object
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_SplMinHeap[] = {
-       SPL_ME(SplMinHeap, compare, arginfo_class_SplMinHeap_compare, ZEND_ACC_PROTECTED)
-       PHP_FE_END
-};
-static const zend_function_entry spl_funcs_SplMaxHeap[] = {
-       SPL_ME(SplMaxHeap, compare, arginfo_class_SplMaxHeap_compare, ZEND_ACC_PROTECTED)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_SplPriorityQueue[] = {
-       SPL_ME(SplPriorityQueue, compare,               arginfo_class_SplPriorityQueue_compare,                 ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, insert,                arginfo_class_SplPriorityQueue_insert,                  ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, setExtractFlags,       arginfo_class_SplPriorityQueue_setExtractFlags, ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, getExtractFlags,       arginfo_class_SplPriorityQueue_getExtractFlags, ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, top,                   arginfo_class_SplPriorityQueue_top,                             ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, extract,               arginfo_class_SplPriorityQueue_extract,                 ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          count,                 arginfo_class_SplPriorityQueue_count,                   ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          isEmpty,               arginfo_class_SplPriorityQueue_isEmpty,                 ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          rewind,                arginfo_class_SplPriorityQueue_rewind,                  ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, current,               arginfo_class_SplPriorityQueue_current,                 ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          key,                   arginfo_class_SplPriorityQueue_key,                             ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          next,                  arginfo_class_SplPriorityQueue_next,                    ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          valid,                 arginfo_class_SplPriorityQueue_valid,                   ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          recoverFromCorruption, arginfo_class_SplPriorityQueue_recoverFromCorruption, ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap,          isCorrupted,           arginfo_class_SplPriorityQueue_isCorrupted,             ZEND_ACC_PUBLIC)
-       SPL_ME(SplPriorityQueue, __debugInfo,           arginfo_class_SplPriorityQueue___debugInfo,             ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_SplHeap[] = {
-       SPL_ME(SplHeap, extract,               arginfo_class_SplHeap_extract,                           ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, insert,                arginfo_class_SplHeap_insert,                            ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, top,                   arginfo_class_SplHeap_top,                                       ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, count,                 arginfo_class_SplHeap_count,                                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, isEmpty,               arginfo_class_SplHeap_isEmpty,                           ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, rewind,                arginfo_class_SplHeap_rewind,                            ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, current,               arginfo_class_SplHeap_current,                           ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, key,                   arginfo_class_SplHeap_key,                                       ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, next,                  arginfo_class_SplHeap_next,                                      ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, valid,                 arginfo_class_SplHeap_valid,                                     ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, recoverFromCorruption, arginfo_class_SplHeap_recoverFromCorruption, ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, isCorrupted,           arginfo_class_SplHeap_isCorrupted,                       ZEND_ACC_PUBLIC)
-       SPL_ME(SplHeap, __debugInfo,           arginfo_class_SplHeap___debugInfo,                       ZEND_ACC_PUBLIC)
-       ZEND_FENTRY(compare, NULL, arginfo_class_SplHeap_compare, ZEND_ACC_PROTECTED|ZEND_ACC_ABSTRACT)
-       PHP_FE_END
-};
-/* }}} */
-
 PHP_MINIT_FUNCTION(spl_heap) /* {{{ */
 {
-       REGISTER_SPL_STD_CLASS_EX(SplHeap, spl_heap_object_new, spl_funcs_SplHeap);
+       REGISTER_SPL_STD_CLASS_EX(SplHeap, spl_heap_object_new, class_SplHeap_methods);
        memcpy(&spl_handler_SplHeap, &std_object_handlers, sizeof(zend_object_handlers));
 
        spl_handler_SplHeap.offset         = XtOffsetOf(spl_heap_object, std);
@@ -1195,13 +1147,13 @@ PHP_MINIT_FUNCTION(spl_heap) /* {{{ */
 
        spl_ce_SplHeap->get_iterator = spl_heap_get_iterator;
 
-       REGISTER_SPL_SUB_CLASS_EX(SplMinHeap,           SplHeap,        spl_heap_object_new, spl_funcs_SplMinHeap);
-       REGISTER_SPL_SUB_CLASS_EX(SplMaxHeap,           SplHeap,        spl_heap_object_new, spl_funcs_SplMaxHeap);
+       REGISTER_SPL_SUB_CLASS_EX(SplMinHeap,           SplHeap,        spl_heap_object_new, class_SplMinHeap_methods);
+       REGISTER_SPL_SUB_CLASS_EX(SplMaxHeap,           SplHeap,        spl_heap_object_new, class_SplMaxHeap_methods);
 
        spl_ce_SplMaxHeap->get_iterator = spl_heap_get_iterator;
        spl_ce_SplMinHeap->get_iterator = spl_heap_get_iterator;
 
-       REGISTER_SPL_STD_CLASS_EX(SplPriorityQueue, spl_heap_object_new, spl_funcs_SplPriorityQueue);
+       REGISTER_SPL_STD_CLASS_EX(SplPriorityQueue, spl_heap_object_new, class_SplPriorityQueue_methods);
        memcpy(&spl_handler_SplPriorityQueue, &std_object_handlers, sizeof(zend_object_handlers));
 
        spl_handler_SplPriorityQueue.offset         = XtOffsetOf(spl_heap_object, std);
index e98bed6cb2b41f73248fc077a77aed41304f0687..5642d784e6db4f9ab72f8ed3e90ea1b1e81f84d4 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class SplPriorityQueue implements Iterator, Countable
 {
     /**
@@ -25,31 +27,55 @@ class SplPriorityQueue implements Iterator, Countable
     /** @return mixed */
     public function extract() {}
 
-    /** @return int */
+    /**
+     * @return int
+     * @alias SplHeap::count
+     */
     public function count() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias SplHeap::isEmpty
+     */
     public function isEmpty() {}
 
-    /** @return void */
+    /**
+     * @return void
+     * @alias SplHeap::rewind
+     */
     public function rewind() {}
 
     /** @return mixed */
     public function current() {}
 
-    /** @return int */
+    /**
+     * @return int
+     * @alias SplHeap::key
+     */
     public function key() {}
 
-    /** @return void */
+    /**
+     * @return void
+     * @alias SplHeap::next
+     */
     public function next() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias SplHeap::valid
+     */
     public function valid() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias SplHeap::recoverFromCorruption
+     */
     public function recoverFromCorruption() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias SplHeap::isCorrupted
+     */
     public function isCorrupted() {}
 
     /** @return int */
index 5d8b96bf14107f9ef53fb87d55dbda06aea575a0..f0b196788b52ca5909d6dfb32f511db778278b7c 100644 (file)
@@ -77,3 +77,80 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_SplMinHeap_compare arginfo_class_SplHeap_compare
 
 #define arginfo_class_SplMaxHeap_compare arginfo_class_SplHeap_compare
+
+
+ZEND_METHOD(SplPriorityQueue, compare);
+ZEND_METHOD(SplPriorityQueue, insert);
+ZEND_METHOD(SplPriorityQueue, setExtractFlags);
+ZEND_METHOD(SplPriorityQueue, top);
+ZEND_METHOD(SplPriorityQueue, extract);
+ZEND_METHOD(SplHeap, count);
+ZEND_METHOD(SplHeap, isEmpty);
+ZEND_METHOD(SplHeap, rewind);
+ZEND_METHOD(SplPriorityQueue, current);
+ZEND_METHOD(SplHeap, key);
+ZEND_METHOD(SplHeap, next);
+ZEND_METHOD(SplHeap, valid);
+ZEND_METHOD(SplHeap, recoverFromCorruption);
+ZEND_METHOD(SplHeap, isCorrupted);
+ZEND_METHOD(SplPriorityQueue, getExtractFlags);
+ZEND_METHOD(SplPriorityQueue, __debugInfo);
+ZEND_METHOD(SplHeap, extract);
+ZEND_METHOD(SplHeap, insert);
+ZEND_METHOD(SplHeap, top);
+ZEND_METHOD(SplHeap, current);
+ZEND_METHOD(SplHeap, __debugInfo);
+ZEND_METHOD(SplMinHeap, compare);
+ZEND_METHOD(SplMaxHeap, compare);
+
+
+static const zend_function_entry class_SplPriorityQueue_methods[] = {
+       ZEND_ME(SplPriorityQueue, compare, arginfo_class_SplPriorityQueue_compare, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, insert, arginfo_class_SplPriorityQueue_insert, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, setExtractFlags, arginfo_class_SplPriorityQueue_setExtractFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, top, arginfo_class_SplPriorityQueue_top, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, extract, arginfo_class_SplPriorityQueue_extract, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, count, count, arginfo_class_SplPriorityQueue_count, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, isEmpty, isEmpty, arginfo_class_SplPriorityQueue_isEmpty, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, rewind, rewind, arginfo_class_SplPriorityQueue_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, current, arginfo_class_SplPriorityQueue_current, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, key, key, arginfo_class_SplPriorityQueue_key, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, next, next, arginfo_class_SplPriorityQueue_next, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, valid, valid, arginfo_class_SplPriorityQueue_valid, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, recoverFromCorruption, recoverFromCorruption, arginfo_class_SplPriorityQueue_recoverFromCorruption, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplHeap, isCorrupted, isCorrupted, arginfo_class_SplPriorityQueue_isCorrupted, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, getExtractFlags, arginfo_class_SplPriorityQueue_getExtractFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplPriorityQueue, __debugInfo, arginfo_class_SplPriorityQueue___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplHeap_methods[] = {
+       ZEND_ME(SplHeap, extract, arginfo_class_SplHeap_extract, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, insert, arginfo_class_SplHeap_insert, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, top, arginfo_class_SplHeap_top, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, count, arginfo_class_SplHeap_count, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, isEmpty, arginfo_class_SplHeap_isEmpty, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, rewind, arginfo_class_SplHeap_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, current, arginfo_class_SplHeap_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, key, arginfo_class_SplHeap_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, next, arginfo_class_SplHeap_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, valid, arginfo_class_SplHeap_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, recoverFromCorruption, arginfo_class_SplHeap_recoverFromCorruption, ZEND_ACC_PUBLIC)
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SplHeap, compare, arginfo_class_SplHeap_compare, ZEND_ACC_PROTECTED|ZEND_ACC_ABSTRACT)
+       ZEND_ME(SplHeap, isCorrupted, arginfo_class_SplHeap_isCorrupted, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplHeap, __debugInfo, arginfo_class_SplHeap___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplMinHeap_methods[] = {
+       ZEND_ME(SplMinHeap, compare, arginfo_class_SplMinHeap_compare, ZEND_ACC_PROTECTED)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplMaxHeap_methods[] = {
+       ZEND_ME(SplMaxHeap, compare, arginfo_class_SplMaxHeap_compare, ZEND_ACC_PROTECTED)
+       ZEND_FE_END
+};
index 733d3ac7d5bcc429c0ae1fca9d61e4a4c8086fea..8c59eb38da1efa94999ee59e80efaac1d961bf0a 100644 (file)
@@ -59,12 +59,6 @@ PHPAPI zend_class_entry *spl_ce_RegexIterator;
 PHPAPI zend_class_entry *spl_ce_RecursiveRegexIterator;
 PHPAPI zend_class_entry *spl_ce_RecursiveTreeIterator;
 
-static const zend_function_entry spl_funcs_RecursiveIterator[] = {
-       SPL_ABSTRACT_ME(RecursiveIterator, hasChildren,  arginfo_class_RecursiveIterator_hasChildren)
-       SPL_ABSTRACT_ME(RecursiveIterator, getChildren,  arginfo_class_RecursiveIterator_getChildren)
-       PHP_FE_END
-};
-
 typedef enum {
        RIT_LEAVES_ONLY = 0,
        RIT_SELF_FIRST  = 1,
@@ -595,14 +589,14 @@ static void spl_recursive_it_it_construct(INTERNAL_FUNCTION_PARAMETERS, zend_cla
 
 /* {{{ proto RecursiveIteratorIterator::__construct(RecursiveIterator|IteratorAggregate it [, int mode = RIT_LEAVES_ONLY [, int flags = 0]]) throws InvalidArgumentException
    Creates a RecursiveIteratorIterator from a RecursiveIterator. */
-SPL_METHOD(RecursiveIteratorIterator, __construct)
+PHP_METHOD(RecursiveIteratorIterator, __construct)
 {
        spl_recursive_it_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveIteratorIterator, zend_ce_iterator, RIT_RecursiveIteratorIterator);
 } /* }}} */
 
 /* {{{ proto void RecursiveIteratorIterator::rewind()
    Rewind the iterator to the first element of the top level inner iterator. */
-SPL_METHOD(RecursiveIteratorIterator, rewind)
+PHP_METHOD(RecursiveIteratorIterator, rewind)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -615,7 +609,7 @@ SPL_METHOD(RecursiveIteratorIterator, rewind)
 
 /* {{{ proto bool RecursiveIteratorIterator::valid()
    Check whether the current position is valid */
-SPL_METHOD(RecursiveIteratorIterator, valid)
+PHP_METHOD(RecursiveIteratorIterator, valid)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -628,7 +622,7 @@ SPL_METHOD(RecursiveIteratorIterator, valid)
 
 /* {{{ proto mixed RecursiveIteratorIterator::key()
    Access the current key */
-SPL_METHOD(RecursiveIteratorIterator, key)
+PHP_METHOD(RecursiveIteratorIterator, key)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_object_iterator      *iterator;
@@ -648,7 +642,7 @@ SPL_METHOD(RecursiveIteratorIterator, key)
 
 /* {{{ proto mixed RecursiveIteratorIterator::current()
    Access the current element value */
-SPL_METHOD(RecursiveIteratorIterator, current)
+PHP_METHOD(RecursiveIteratorIterator, current)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_object_iterator      *iterator;
@@ -668,7 +662,7 @@ SPL_METHOD(RecursiveIteratorIterator, current)
 
 /* {{{ proto void RecursiveIteratorIterator::next()
    Move forward to the next element */
-SPL_METHOD(RecursiveIteratorIterator, next)
+PHP_METHOD(RecursiveIteratorIterator, next)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -681,7 +675,7 @@ SPL_METHOD(RecursiveIteratorIterator, next)
 
 /* {{{ proto int RecursiveIteratorIterator::getDepth()
    Get the current depth of the recursive iteration */
-SPL_METHOD(RecursiveIteratorIterator, getDepth)
+PHP_METHOD(RecursiveIteratorIterator, getDepth)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -694,7 +688,7 @@ SPL_METHOD(RecursiveIteratorIterator, getDepth)
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::getSubIterator([int level])
    The current active sub iterator or the iterator at specified level */
-SPL_METHOD(RecursiveIteratorIterator, getSubIterator)
+PHP_METHOD(RecursiveIteratorIterator, getSubIterator)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_long  level = object->level;
@@ -719,7 +713,7 @@ SPL_METHOD(RecursiveIteratorIterator, getSubIterator)
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::getInnerIterator()
    The current active sub iterator */
-SPL_METHOD(RecursiveIteratorIterator, getInnerIterator)
+PHP_METHOD(RecursiveIteratorIterator, getInnerIterator)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zval      *zobject;
@@ -735,7 +729,7 @@ SPL_METHOD(RecursiveIteratorIterator, getInnerIterator)
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::beginIteration()
    Called when iteration begins (after first rewind() call) */
-SPL_METHOD(RecursiveIteratorIterator, beginIteration)
+PHP_METHOD(RecursiveIteratorIterator, beginIteration)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -745,7 +739,7 @@ SPL_METHOD(RecursiveIteratorIterator, beginIteration)
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::endIteration()
    Called when iteration ends (when valid() first returns false */
-SPL_METHOD(RecursiveIteratorIterator, endIteration)
+PHP_METHOD(RecursiveIteratorIterator, endIteration)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -755,7 +749,7 @@ SPL_METHOD(RecursiveIteratorIterator, endIteration)
 
 /* {{{ proto bool RecursiveIteratorIterator::callHasChildren()
    Called for each element to test whether it has children */
-SPL_METHOD(RecursiveIteratorIterator, callHasChildren)
+PHP_METHOD(RecursiveIteratorIterator, callHasChildren)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_class_entry *ce;
@@ -784,7 +778,7 @@ SPL_METHOD(RecursiveIteratorIterator, callHasChildren)
 
 /* {{{ proto RecursiveIterator RecursiveIteratorIterator::callGetChildren()
    Return children of current element */
-SPL_METHOD(RecursiveIteratorIterator, callGetChildren)
+PHP_METHOD(RecursiveIteratorIterator, callGetChildren)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_class_entry *ce;
@@ -809,7 +803,7 @@ SPL_METHOD(RecursiveIteratorIterator, callGetChildren)
 
 /* {{{ proto void RecursiveIteratorIterator::beginChildren()
    Called when recursing one level down */
-SPL_METHOD(RecursiveIteratorIterator, beginChildren)
+PHP_METHOD(RecursiveIteratorIterator, beginChildren)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -819,7 +813,7 @@ SPL_METHOD(RecursiveIteratorIterator, beginChildren)
 
 /* {{{ proto void RecursiveIteratorIterator::endChildren()
    Called when end recursing one level */
-SPL_METHOD(RecursiveIteratorIterator, endChildren)
+PHP_METHOD(RecursiveIteratorIterator, endChildren)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -829,7 +823,7 @@ SPL_METHOD(RecursiveIteratorIterator, endChildren)
 
 /* {{{ proto void RecursiveIteratorIterator::nextElement()
    Called when the next element is available */
-SPL_METHOD(RecursiveIteratorIterator, nextElement)
+PHP_METHOD(RecursiveIteratorIterator, nextElement)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -839,7 +833,7 @@ SPL_METHOD(RecursiveIteratorIterator, nextElement)
 
 /* {{{ proto void RecursiveIteratorIterator::setMaxDepth([$max_depth = -1])
    Set the maximum allowed depth (or any depth if pmax_depth = -1] */
-SPL_METHOD(RecursiveIteratorIterator, setMaxDepth)
+PHP_METHOD(RecursiveIteratorIterator, setMaxDepth)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_long  max_depth = -1;
@@ -859,7 +853,7 @@ SPL_METHOD(RecursiveIteratorIterator, setMaxDepth)
 
 /* {{{ proto int|false RecursiveIteratorIterator::getMaxDepth()
    Return the maximum accepted depth or false if any depth is allowed */
-SPL_METHOD(RecursiveIteratorIterator, getMaxDepth)
+PHP_METHOD(RecursiveIteratorIterator, getMaxDepth)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -982,28 +976,6 @@ static zend_object *spl_RecursiveTreeIterator_new(zend_class_entry *class_type)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_RecursiveIteratorIterator[] = {
-       SPL_ME(RecursiveIteratorIterator, __construct,       arginfo_class_RecursiveIteratorIterator___construct,    ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, rewind,            arginfo_class_RecursiveIteratorIterator_rewind,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, valid,             arginfo_class_RecursiveIteratorIterator_valid,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, key,               arginfo_class_RecursiveIteratorIterator_key,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, current,           arginfo_class_RecursiveIteratorIterator_current,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, next,              arginfo_class_RecursiveIteratorIterator_next,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, getDepth,          arginfo_class_RecursiveIteratorIterator_getDepth,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, getSubIterator,    arginfo_class_RecursiveIteratorIterator_getSubIterator, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, getInnerIterator,  arginfo_class_RecursiveIteratorIterator_getInnerIterator,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, beginIteration,    arginfo_class_RecursiveIteratorIterator_beginIteration,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, endIteration,      arginfo_class_RecursiveIteratorIterator_endIteration,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, callHasChildren,   arginfo_class_RecursiveIteratorIterator_callHasChildren,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, callGetChildren,   arginfo_class_RecursiveIteratorIterator_callGetChildren,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, beginChildren,     arginfo_class_RecursiveIteratorIterator_beginChildren,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, endChildren,       arginfo_class_RecursiveIteratorIterator_endChildren,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, nextElement,       arginfo_class_RecursiveIteratorIterator_nextElement,           ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, setMaxDepth,       arginfo_class_RecursiveIteratorIterator_setMaxDepth,    ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, getMaxDepth,       arginfo_class_RecursiveIteratorIterator_getMaxDepth,           ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 static void spl_recursive_tree_iterator_get_prefix(spl_recursive_it_object *object, zval *return_value)
 {
        smart_str  str = {0};
@@ -1065,14 +1037,14 @@ static void spl_recursive_tree_iterator_get_postfix(spl_recursive_it_object *obj
 
 /* {{{ proto RecursiveTreeIterator::__construct(RecursiveIterator|IteratorAggregate it [, int flags = RTIT_BYPASS_KEY [, int cit_flags = CIT_CATCH_GET_CHILD [, mode = RIT_SELF_FIRST ]]]) throws InvalidArgumentException
    RecursiveIteratorIterator to generate ASCII graphic trees for the entries in a RecursiveIterator */
-SPL_METHOD(RecursiveTreeIterator, __construct)
+PHP_METHOD(RecursiveTreeIterator, __construct)
 {
        spl_recursive_it_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveTreeIterator, zend_ce_iterator, RIT_RecursiveTreeIterator);
 } /* }}} */
 
 /* {{{ proto void RecursiveTreeIterator::setPrefixPart(int part, string prefix) throws OutOfRangeException
    Sets prefix parts as used in getPrefix() */
-SPL_METHOD(RecursiveTreeIterator, setPrefixPart)
+PHP_METHOD(RecursiveTreeIterator, setPrefixPart)
 {
        zend_long  part;
        char* prefix;
@@ -1094,7 +1066,7 @@ SPL_METHOD(RecursiveTreeIterator, setPrefixPart)
 
 /* {{{ proto string RecursiveTreeIterator::getPrefix()
    Returns the string to place in front of current element */
-SPL_METHOD(RecursiveTreeIterator, getPrefix)
+PHP_METHOD(RecursiveTreeIterator, getPrefix)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -1113,7 +1085,7 @@ SPL_METHOD(RecursiveTreeIterator, getPrefix)
 
 /* {{{ proto void RecursiveTreeIterator::setPostfix(string prefix)
    Sets postfix as used in getPostfix() */
-SPL_METHOD(RecursiveTreeIterator, setPostfix)
+PHP_METHOD(RecursiveTreeIterator, setPostfix)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        char* postfix;
@@ -1129,7 +1101,7 @@ SPL_METHOD(RecursiveTreeIterator, setPostfix)
 
 /* {{{ proto string RecursiveTreeIterator::getEntry()
    Returns the string presentation built for current element */
-SPL_METHOD(RecursiveTreeIterator, getEntry)
+PHP_METHOD(RecursiveTreeIterator, getEntry)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -1148,7 +1120,7 @@ SPL_METHOD(RecursiveTreeIterator, getEntry)
 
 /* {{{ proto string RecursiveTreeIterator::getPostfix()
    Returns the string to place after the current element */
-SPL_METHOD(RecursiveTreeIterator, getPostfix)
+PHP_METHOD(RecursiveTreeIterator, getPostfix)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
 
@@ -1167,7 +1139,7 @@ SPL_METHOD(RecursiveTreeIterator, getPostfix)
 
 /* {{{ proto mixed RecursiveTreeIterator::current()
    Returns the current element prefixed and postfixed */
-SPL_METHOD(RecursiveTreeIterator, current)
+PHP_METHOD(RecursiveTreeIterator, current)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zval                       prefix, entry, postfix;
@@ -1229,7 +1201,7 @@ SPL_METHOD(RecursiveTreeIterator, current)
 
 /* {{{ proto mixed RecursiveTreeIterator::key()
    Returns the current key prefixed and postfixed */
-SPL_METHOD(RecursiveTreeIterator, key)
+PHP_METHOD(RecursiveTreeIterator, key)
 {
        spl_recursive_it_object   *object = Z_SPLRECURSIVE_IT_P(ZEND_THIS);
        zend_object_iterator      *iterator;
@@ -1280,28 +1252,6 @@ SPL_METHOD(RecursiveTreeIterator, key)
        RETURN_NEW_STR(str);
 } /* }}} */
 
-static const zend_function_entry spl_funcs_RecursiveTreeIterator[] = {
-       SPL_ME(RecursiveTreeIterator,     __construct,       arginfo_class_RecursiveTreeIterator___construct,   ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, rewind,            arginfo_class_RecursiveTreeIterator_rewind,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, valid,             arginfo_class_RecursiveTreeIterator_valid,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     key,               arginfo_class_RecursiveTreeIterator_key,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     current,           arginfo_class_RecursiveTreeIterator_current,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, next,              arginfo_class_RecursiveTreeIterator_next,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, beginIteration,    arginfo_class_RecursiveTreeIterator_beginIteration,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, endIteration,      arginfo_class_RecursiveTreeIterator_endIteration,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, callHasChildren,   arginfo_class_RecursiveTreeIterator_callHasChildren,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, callGetChildren,   arginfo_class_RecursiveTreeIterator_callGetChildren,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, beginChildren,     arginfo_class_RecursiveTreeIterator_beginChildren,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, endChildren,       arginfo_class_RecursiveTreeIterator_endChildren,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveIteratorIterator, nextElement,       arginfo_class_RecursiveTreeIterator_nextElement,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     getPrefix,         arginfo_class_RecursiveTreeIterator_getPrefix,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     setPrefixPart,     arginfo_class_RecursiveTreeIterator_setPrefixPart, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     getEntry,          arginfo_class_RecursiveTreeIterator_getEntry,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     setPostfix,        arginfo_class_RecursiveTreeIterator_setPostfix,               ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveTreeIterator,     getPostfix,        arginfo_class_RecursiveTreeIterator_getPostfix,               ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 static zend_function *spl_dual_it_get_method(zend_object **object, zend_string *method, const zval *key)
 {
        zend_function        *function_handler;
@@ -1503,14 +1453,14 @@ static spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAMETERS, z
 
 /* {{{ proto FilterIterator::__construct(Iterator it)
    Create an Iterator from another iterator */
-SPL_METHOD(FilterIterator, __construct)
+PHP_METHOD(FilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_FilterIterator, zend_ce_iterator, DIT_FilterIterator);
 } /* }}} */
 
 /* {{{ proto CallbackFilterIterator::__construct(Iterator it, callback func)
    Create an Iterator from another iterator */
-SPL_METHOD(CallbackFilterIterator, __construct)
+PHP_METHOD(CallbackFilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_CallbackFilterIterator, zend_ce_iterator, DIT_CallbackFilterIterator);
 } /* }}} */
@@ -1520,7 +1470,7 @@ SPL_METHOD(CallbackFilterIterator, __construct)
        proto Iterator LimitIterator::getInnerIterator()
        proto Iterator ParentIterator::getInnerIterator()
    Get the inner iterator */
-SPL_METHOD(dual_it, getInnerIterator)
+PHP_METHOD(IteratorIterator, getInnerIterator)
 {
        spl_dual_it_object   *intern;
 
@@ -1623,7 +1573,7 @@ static inline void spl_dual_it_next(spl_dual_it_object *intern, int do_free)
        proto void IteratorIterator::rewind()
    Rewind the iterator
    */
-SPL_METHOD(dual_it, rewind)
+PHP_METHOD(IteratorIterator, rewind)
 {
        spl_dual_it_object   *intern;
 
@@ -1642,7 +1592,7 @@ SPL_METHOD(dual_it, rewind)
        proto bool IteratorIterator::valid()
        proto bool NoRewindIterator::valid()
    Check whether the current element is valid */
-SPL_METHOD(dual_it, valid)
+PHP_METHOD(IteratorIterator, valid)
 {
        spl_dual_it_object   *intern;
 
@@ -1663,7 +1613,7 @@ SPL_METHOD(dual_it, valid)
        proto mixed NoRewindIterator::key()
        proto mixed AppendIterator::key()
    Get the current key */
-SPL_METHOD(dual_it, key)
+PHP_METHOD(IteratorIterator, key)
 {
        spl_dual_it_object   *intern;
 
@@ -1689,7 +1639,7 @@ SPL_METHOD(dual_it, key)
        proto mixed IteratorIterator::current()
        proto mixed NoRewindIterator::current()
    Get the current element value */
-SPL_METHOD(dual_it, current)
+PHP_METHOD(IteratorIterator, current)
 {
        spl_dual_it_object   *intern;
 
@@ -1712,7 +1662,7 @@ SPL_METHOD(dual_it, current)
        proto void IteratorIterator::next()
        proto void NoRewindIterator::next()
    Move the iterator forward */
-SPL_METHOD(dual_it, next)
+PHP_METHOD(IteratorIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -1761,7 +1711,7 @@ static inline void spl_filter_it_next(zval *zthis, spl_dual_it_object *intern)
 
 /* {{{ proto void FilterIterator::rewind()
    Rewind the iterator */
-SPL_METHOD(FilterIterator, rewind)
+PHP_METHOD(FilterIterator, rewind)
 {
        spl_dual_it_object   *intern;
 
@@ -1775,7 +1725,7 @@ SPL_METHOD(FilterIterator, rewind)
 
 /* {{{ proto void FilterIterator::next()
    Move the iterator forward */
-SPL_METHOD(FilterIterator, next)
+PHP_METHOD(FilterIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -1789,7 +1739,7 @@ SPL_METHOD(FilterIterator, next)
 
 /* {{{ proto RecursiveCallbackFilterIterator::__construct(RecursiveIterator it, callback func)
    Create a RecursiveCallbackFilterIterator from a RecursiveIterator */
-SPL_METHOD(RecursiveCallbackFilterIterator, __construct)
+PHP_METHOD(RecursiveCallbackFilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveCallbackFilterIterator, spl_ce_RecursiveIterator, DIT_RecursiveCallbackFilterIterator);
 } /* }}} */
@@ -1797,14 +1747,14 @@ SPL_METHOD(RecursiveCallbackFilterIterator, __construct)
 
 /* {{{ proto RecursiveFilterIterator::__construct(RecursiveIterator it)
    Create a RecursiveFilterIterator from a RecursiveIterator */
-SPL_METHOD(RecursiveFilterIterator, __construct)
+PHP_METHOD(RecursiveFilterIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveFilterIterator, spl_ce_RecursiveIterator, DIT_RecursiveFilterIterator);
 } /* }}} */
 
 /* {{{ proto bool RecursiveFilterIterator::hasChildren()
    Check whether the inner iterator's current element has children */
-SPL_METHOD(RecursiveFilterIterator, hasChildren)
+PHP_METHOD(RecursiveFilterIterator, hasChildren)
 {
        spl_dual_it_object   *intern;
 
@@ -1819,7 +1769,7 @@ SPL_METHOD(RecursiveFilterIterator, hasChildren)
 
 /* {{{ proto RecursiveFilterIterator RecursiveFilterIterator::getChildren()
    Return the inner iterator's children contained in a RecursiveFilterIterator */
-SPL_METHOD(RecursiveFilterIterator, getChildren)
+PHP_METHOD(RecursiveFilterIterator, getChildren)
 {
        spl_dual_it_object   *intern;
        zval                  retval;
@@ -1839,7 +1789,7 @@ SPL_METHOD(RecursiveFilterIterator, getChildren)
 
 /* {{{ proto RecursiveCallbackFilterIterator RecursiveCallbackFilterIterator::getChildren()
    Return the inner iterator's children contained in a RecursiveCallbackFilterIterator */
-SPL_METHOD(RecursiveCallbackFilterIterator, getChildren)
+PHP_METHOD(RecursiveCallbackFilterIterator, getChildren)
 {
        spl_dual_it_object   *intern;
        zval                  retval;
@@ -1858,21 +1808,21 @@ SPL_METHOD(RecursiveCallbackFilterIterator, getChildren)
 } /* }}} */
 /* {{{ proto ParentIterator::__construct(RecursiveIterator it)
    Create a ParentIterator from a RecursiveIterator */
-SPL_METHOD(ParentIterator, __construct)
+PHP_METHOD(ParentIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_ParentIterator, spl_ce_RecursiveIterator, DIT_ParentIterator);
 } /* }}} */
 
 /* {{{ proto RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]])
    Create an RegexIterator from another iterator and a regular expression */
-SPL_METHOD(RegexIterator, __construct)
+PHP_METHOD(RegexIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RegexIterator, zend_ce_iterator, DIT_RegexIterator);
 } /* }}} */
 
 /* {{{ proto bool CallbackFilterIterator::accept()
    Calls the callback with the current value, the current key and the inner iterator as arguments */
-SPL_METHOD(CallbackFilterIterator, accept)
+PHP_METHOD(CallbackFilterIterator, accept)
 {
        spl_dual_it_object     *intern = Z_SPLDUAL_IT_P(ZEND_THIS);
        zend_fcall_info        *fci = &intern->u.cbfilter->fci;
@@ -1912,7 +1862,7 @@ SPL_METHOD(CallbackFilterIterator, accept)
 
 /* {{{ proto bool RegexIterator::accept()
    Match (string)current() against regular expression */
-SPL_METHOD(RegexIterator, accept)
+PHP_METHOD(RegexIterator, accept)
 {
        spl_dual_it_object *intern;
        zend_string *result, *subject;
@@ -2007,7 +1957,7 @@ SPL_METHOD(RegexIterator, accept)
 
 /* {{{ proto string RegexIterator::getRegex()
    Returns current regular expression */
-SPL_METHOD(RegexIterator, getRegex)
+PHP_METHOD(RegexIterator, getRegex)
 {
        spl_dual_it_object *intern = Z_SPLDUAL_IT_P(ZEND_THIS);
 
@@ -2020,7 +1970,7 @@ SPL_METHOD(RegexIterator, getRegex)
 
 /* {{{ proto bool RegexIterator::getMode()
    Returns current operation mode */
-SPL_METHOD(RegexIterator, getMode)
+PHP_METHOD(RegexIterator, getMode)
 {
        spl_dual_it_object *intern;
 
@@ -2035,7 +1985,7 @@ SPL_METHOD(RegexIterator, getMode)
 
 /* {{{ proto bool RegexIterator::setMode(int new_mode)
    Set new operation mode */
-SPL_METHOD(RegexIterator, setMode)
+PHP_METHOD(RegexIterator, setMode)
 {
        spl_dual_it_object *intern;
        zend_long mode;
@@ -2056,7 +2006,7 @@ SPL_METHOD(RegexIterator, setMode)
 
 /* {{{ proto bool RegexIterator::getFlags()
    Returns current operation flags */
-SPL_METHOD(RegexIterator, getFlags)
+PHP_METHOD(RegexIterator, getFlags)
 {
        spl_dual_it_object *intern;
 
@@ -2071,7 +2021,7 @@ SPL_METHOD(RegexIterator, getFlags)
 
 /* {{{ proto bool RegexIterator::setFlags(int new_flags)
    Set operation flags */
-SPL_METHOD(RegexIterator, setFlags)
+PHP_METHOD(RegexIterator, setFlags)
 {
        spl_dual_it_object *intern;
        zend_long flags;
@@ -2087,7 +2037,7 @@ SPL_METHOD(RegexIterator, setFlags)
 
 /* {{{ proto bool RegexIterator::getFlags()
    Returns current PREG flags (if in use or NULL) */
-SPL_METHOD(RegexIterator, getPregFlags)
+PHP_METHOD(RegexIterator, getPregFlags)
 {
        spl_dual_it_object *intern;
 
@@ -2106,7 +2056,7 @@ SPL_METHOD(RegexIterator, getPregFlags)
 
 /* {{{ proto bool RegexIterator::setPregFlags(int new_flags)
    Set PREG flags */
-SPL_METHOD(RegexIterator, setPregFlags)
+PHP_METHOD(RegexIterator, setPregFlags)
 {
        spl_dual_it_object *intern;
        zend_long preg_flags;
@@ -2123,14 +2073,14 @@ SPL_METHOD(RegexIterator, setPregFlags)
 
 /* {{{ proto RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]])
    Create an RecursiveRegexIterator from another recursive iterator and a regular expression */
-SPL_METHOD(RecursiveRegexIterator, __construct)
+PHP_METHOD(RecursiveRegexIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveRegexIterator, spl_ce_RecursiveIterator, DIT_RecursiveRegexIterator);
 } /* }}} */
 
 /* {{{ proto RecursiveRegexIterator RecursiveRegexIterator::getChildren()
    Return the inner iterator's children contained in a RecursiveRegexIterator */
-SPL_METHOD(RecursiveRegexIterator, getChildren)
+PHP_METHOD(RecursiveRegexIterator, getChildren)
 {
        spl_dual_it_object   *intern;
        zval                 retval;
@@ -2159,7 +2109,7 @@ SPL_METHOD(RecursiveRegexIterator, getChildren)
        zval_ptr_dtor(&retval);
 } /* }}} */
 
-SPL_METHOD(RecursiveRegexIterator, accept)
+PHP_METHOD(RecursiveRegexIterator, accept)
 {
        spl_dual_it_object *intern;
 
@@ -2256,65 +2206,6 @@ static zend_object *spl_dual_it_new(zend_class_entry *class_type)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_FilterIterator[] = {
-       SPL_ME(FilterIterator,  __construct,      arginfo_class_FilterIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(FilterIterator,  rewind,           arginfo_class_FilterIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         valid,            arginfo_class_FilterIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         key,              arginfo_class_FilterIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         current,          arginfo_class_FilterIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(FilterIterator,  next,             arginfo_class_FilterIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         getInnerIterator, arginfo_class_FilterIterator_getInnerIterator, ZEND_ACC_PUBLIC)
-       SPL_ABSTRACT_ME(FilterIterator, accept,   arginfo_class_FilterIterator_accept)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_CallbackFilterIterator[] = {
-       SPL_ME(CallbackFilterIterator, __construct, arginfo_class_CallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(CallbackFilterIterator, accept,      arginfo_class_CallbackFilterIterator_accept, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_RecursiveCallbackFilterIterator[] = {
-       SPL_ME(RecursiveCallbackFilterIterator, __construct, arginfo_class_RecursiveCallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveFilterIterator,  hasChildren,      arginfo_class_RecursiveCallbackFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveCallbackFilterIterator,  getChildren,      arginfo_class_RecursiveCallbackFilterIterator_getChildren, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_RecursiveFilterIterator[] = {
-       SPL_ME(RecursiveFilterIterator,  __construct,      arginfo_class_RecursiveFilterIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveFilterIterator,  hasChildren,      arginfo_class_RecursiveFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveFilterIterator,  getChildren,      arginfo_class_RecursiveFilterIterator_getChildren, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_ParentIterator[] = {
-       SPL_ME(ParentIterator,  __construct,      arginfo_class_ParentIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_MA(ParentIterator,  accept,           RecursiveFilterIterator, hasChildren, arginfo_class_ParentIterator_accept, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_RegexIterator[] = {
-       SPL_ME(RegexIterator,   __construct,      arginfo_class_RegexIterator___construct,    ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   accept,           arginfo_class_RegexIterator_accept,       ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   getMode,          arginfo_class_RegexIterator_getMode,       ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   setMode,          arginfo_class_RegexIterator_setMode,       ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   getFlags,         arginfo_class_RegexIterator_getFlags,       ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   setFlags,         arginfo_class_RegexIterator_setFlags,      ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   getPregFlags,     arginfo_class_RegexIterator_getPregFlags,       ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   setPregFlags,     arginfo_class_RegexIterator_setPregFlags, ZEND_ACC_PUBLIC)
-       SPL_ME(RegexIterator,   getRegex,         arginfo_class_RegexIterator_getRegex,       ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_RecursiveRegexIterator[] = {
-       SPL_ME(RecursiveRegexIterator,  __construct,      arginfo_class_RecursiveRegexIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveRegexIterator,  accept,           arginfo_class_RecursiveRegexIterator_accept, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveFilterIterator, hasChildren,      arginfo_class_RecursiveRegexIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveRegexIterator,  getChildren,      arginfo_class_RecursiveRegexIterator_getChildren, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 static inline int spl_limit_it_valid(spl_dual_it_object *intern)
 {
        /* FAILURE / SUCCESS */
@@ -2365,14 +2256,14 @@ static inline void spl_limit_it_seek(spl_dual_it_object *intern, zend_long pos)
 
 /* {{{ proto LimitIterator::__construct(Iterator it [, int offset, int count])
    Construct a LimitIterator from an Iterator with a given starting offset and optionally a maximum count */
-SPL_METHOD(LimitIterator, __construct)
+PHP_METHOD(LimitIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_LimitIterator, zend_ce_iterator, DIT_LimitIterator);
 } /* }}} */
 
 /* {{{ proto void LimitIterator::rewind()
    Rewind the iterator to the specified starting offset */
-SPL_METHOD(LimitIterator, rewind)
+PHP_METHOD(LimitIterator, rewind)
 {
        spl_dual_it_object   *intern;
 
@@ -2387,7 +2278,7 @@ SPL_METHOD(LimitIterator, rewind)
 
 /* {{{ proto bool LimitIterator::valid()
    Check whether the current element is valid */
-SPL_METHOD(LimitIterator, valid)
+PHP_METHOD(LimitIterator, valid)
 {
        spl_dual_it_object   *intern;
 
@@ -2403,7 +2294,7 @@ SPL_METHOD(LimitIterator, valid)
 
 /* {{{ proto void LimitIterator::next()
    Move the iterator forward */
-SPL_METHOD(LimitIterator, next)
+PHP_METHOD(LimitIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -2421,7 +2312,7 @@ SPL_METHOD(LimitIterator, next)
 
 /* {{{ proto void LimitIterator::seek(int position)
    Seek to the given position */
-SPL_METHOD(LimitIterator, seek)
+PHP_METHOD(LimitIterator, seek)
 {
        spl_dual_it_object   *intern;
        zend_long                 pos;
@@ -2437,7 +2328,7 @@ SPL_METHOD(LimitIterator, seek)
 
 /* {{{ proto int LimitIterator::getPosition()
    Return the current position */
-SPL_METHOD(LimitIterator, getPosition)
+PHP_METHOD(LimitIterator, getPosition)
 {
        spl_dual_it_object   *intern;
 
@@ -2449,24 +2340,6 @@ SPL_METHOD(LimitIterator, getPosition)
        RETURN_LONG(intern->current.pos);
 } /* }}} */
 
-static const zend_function_entry spl_funcs_SeekableIterator[] = {
-       SPL_ABSTRACT_ME(SeekableIterator, seek, arginfo_class_SeekableIterator_seek)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_LimitIterator[] = {
-       SPL_ME(LimitIterator,   __construct,      arginfo_class_LimitIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(LimitIterator,   rewind,           arginfo_class_LimitIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(LimitIterator,   valid,            arginfo_class_LimitIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         key,              arginfo_class_LimitIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         current,          arginfo_class_LimitIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(LimitIterator,   next,             arginfo_class_LimitIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(LimitIterator,   seek,             arginfo_class_LimitIterator_seek, ZEND_ACC_PUBLIC)
-       SPL_ME(LimitIterator,   getPosition,      arginfo_class_LimitIterator_getPosition, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         getInnerIterator, arginfo_class_LimitIterator_getInnerIterator, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 static inline int spl_caching_it_valid(spl_dual_it_object *intern)
 {
        return intern->u.caching.flags & CIT_VALID ? SUCCESS : FAILURE;
@@ -2559,14 +2432,14 @@ static inline void spl_caching_it_rewind(spl_dual_it_object *intern)
 
 /* {{{ proto CachingIterator::__construct(Iterator it [, flags = CIT_CALL_TOSTRING])
    Construct a CachingIterator from an Iterator */
-SPL_METHOD(CachingIterator, __construct)
+PHP_METHOD(CachingIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_CachingIterator, zend_ce_iterator, DIT_CachingIterator);
 } /* }}} */
 
 /* {{{ proto void CachingIterator::rewind()
    Rewind the iterator */
-SPL_METHOD(CachingIterator, rewind)
+PHP_METHOD(CachingIterator, rewind)
 {
        spl_dual_it_object   *intern;
 
@@ -2581,7 +2454,7 @@ SPL_METHOD(CachingIterator, rewind)
 
 /* {{{ proto bool CachingIterator::valid()
    Check whether the current element is valid */
-SPL_METHOD(CachingIterator, valid)
+PHP_METHOD(CachingIterator, valid)
 {
        spl_dual_it_object   *intern;
 
@@ -2596,7 +2469,7 @@ SPL_METHOD(CachingIterator, valid)
 
 /* {{{ proto void CachingIterator::next()
    Move the iterator forward */
-SPL_METHOD(CachingIterator, next)
+PHP_METHOD(CachingIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -2611,7 +2484,7 @@ SPL_METHOD(CachingIterator, next)
 
 /* {{{ proto bool CachingIterator::hasNext()
    Check whether the inner iterator has a valid next element */
-SPL_METHOD(CachingIterator, hasNext)
+PHP_METHOD(CachingIterator, hasNext)
 {
        spl_dual_it_object   *intern;
 
@@ -2626,7 +2499,7 @@ SPL_METHOD(CachingIterator, hasNext)
 
 /* {{{ proto string CachingIterator::__toString()
    Return the string representation of the current element */
-SPL_METHOD(CachingIterator, __toString)
+PHP_METHOD(CachingIterator, __toString)
 {
        spl_dual_it_object *intern;
 
@@ -2659,7 +2532,7 @@ SPL_METHOD(CachingIterator, __toString)
 
 /* {{{ proto void CachingIterator::offsetSet(mixed index, mixed newval)
    Set given index in cache */
-SPL_METHOD(CachingIterator, offsetSet)
+PHP_METHOD(CachingIterator, offsetSet)
 {
        spl_dual_it_object   *intern;
        zend_string *key;
@@ -2683,7 +2556,7 @@ SPL_METHOD(CachingIterator, offsetSet)
 
 /* {{{ proto string CachingIterator::offsetGet(mixed index)
    Return the internal cache if used */
-SPL_METHOD(CachingIterator, offsetGet)
+PHP_METHOD(CachingIterator, offsetGet)
 {
        spl_dual_it_object   *intern;
        zend_string *key;
@@ -2711,7 +2584,7 @@ SPL_METHOD(CachingIterator, offsetGet)
 
 /* {{{ proto void CachingIterator::offsetUnset(mixed index)
    Unset given index in cache */
-SPL_METHOD(CachingIterator, offsetUnset)
+PHP_METHOD(CachingIterator, offsetUnset)
 {
        spl_dual_it_object   *intern;
        zend_string *key;
@@ -2733,7 +2606,7 @@ SPL_METHOD(CachingIterator, offsetUnset)
 
 /* {{{ proto bool CachingIterator::offsetExists(mixed index)
    Return whether the requested index exists */
-SPL_METHOD(CachingIterator, offsetExists)
+PHP_METHOD(CachingIterator, offsetExists)
 {
        spl_dual_it_object   *intern;
        zend_string *key;
@@ -2755,7 +2628,7 @@ SPL_METHOD(CachingIterator, offsetExists)
 
 /* {{{ proto array CachingIterator::getCache()
    Return the cache */
-SPL_METHOD(CachingIterator, getCache)
+PHP_METHOD(CachingIterator, getCache)
 {
        spl_dual_it_object *intern;
 
@@ -2776,7 +2649,7 @@ SPL_METHOD(CachingIterator, getCache)
 
 /* {{{ proto int CachingIterator::getFlags()
    Return the internal flags */
-SPL_METHOD(CachingIterator, getFlags)
+PHP_METHOD(CachingIterator, getFlags)
 {
        spl_dual_it_object   *intern;
 
@@ -2792,7 +2665,7 @@ SPL_METHOD(CachingIterator, getFlags)
 
 /* {{{ proto void CachingIterator::setFlags(int flags)
    Set the internal flags */
-SPL_METHOD(CachingIterator, setFlags)
+PHP_METHOD(CachingIterator, setFlags)
 {
        spl_dual_it_object   *intern;
        zend_long flags;
@@ -2825,7 +2698,7 @@ SPL_METHOD(CachingIterator, setFlags)
 
 /* {{{ proto void CachingIterator::count()
    Number of cached elements */
-SPL_METHOD(CachingIterator, count)
+PHP_METHOD(CachingIterator, count)
 {
        spl_dual_it_object   *intern;
 
@@ -2844,37 +2717,16 @@ SPL_METHOD(CachingIterator, count)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_CachingIterator[] = {
-       SPL_ME(CachingIterator, __construct,      arginfo_class_CachingIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, rewind,           arginfo_class_CachingIterator_rewind,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, valid,            arginfo_class_CachingIterator_valid,      ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         key,              arginfo_class_CachingIterator_key,      ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         current,          arginfo_class_CachingIterator_current,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, next,             arginfo_class_CachingIterator_next,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, hasNext,          arginfo_class_CachingIterator_hasNext,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, __toString,       arginfo_class_CachingIterator___toString,  ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,         getInnerIterator, arginfo_class_CachingIterator_getInnerIterator,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, getFlags,         arginfo_class_CachingIterator_getFlags,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, setFlags,         arginfo_class_CachingIterator_setFlags,    ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, offsetGet,        arginfo_class_CachingIterator_offsetGet,   ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, offsetSet,        arginfo_class_CachingIterator_offsetSet,   ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, offsetUnset,      arginfo_class_CachingIterator_offsetUnset,   ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, offsetExists,     arginfo_class_CachingIterator_offsetExists,   ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, getCache,         arginfo_class_CachingIterator_getCache,      ZEND_ACC_PUBLIC)
-       SPL_ME(CachingIterator, count,            arginfo_class_CachingIterator_count,      ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 /* {{{ proto RecursiveCachingIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING])
    Create an iterator from a RecursiveIterator */
-SPL_METHOD(RecursiveCachingIterator, __construct)
+PHP_METHOD(RecursiveCachingIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveCachingIterator, spl_ce_RecursiveIterator, DIT_RecursiveCachingIterator);
 } /* }}} */
 
 /* {{{ proto bool RecursiveCachingIterator::hasChildren()
    Check whether the current element of the inner iterator has children */
-SPL_METHOD(RecursiveCachingIterator, hasChildren)
+PHP_METHOD(RecursiveCachingIterator, hasChildren)
 {
        spl_dual_it_object   *intern;
 
@@ -2889,7 +2741,7 @@ SPL_METHOD(RecursiveCachingIterator, hasChildren)
 
 /* {{{ proto RecursiveCachingIterator RecursiveCachingIterator::getChildren()
   Return the inner iterator's children as a RecursiveCachingIterator */
-SPL_METHOD(RecursiveCachingIterator, getChildren)
+PHP_METHOD(RecursiveCachingIterator, getChildren)
 {
        spl_dual_it_object   *intern;
 
@@ -2908,41 +2760,23 @@ SPL_METHOD(RecursiveCachingIterator, getChildren)
        }
 } /* }}} */
 
-static const zend_function_entry spl_funcs_RecursiveCachingIterator[] = {
-       SPL_ME(RecursiveCachingIterator, __construct,   arginfo_class_RecursiveCachingIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveCachingIterator, hasChildren,   arginfo_class_RecursiveCachingIterator_hasChildren, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveCachingIterator, getChildren,   arginfo_class_RecursiveCachingIterator_getChildren, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 /* {{{ proto IteratorIterator::__construct(Traversable it)
    Create an iterator from anything that is traversable */
-SPL_METHOD(IteratorIterator, __construct)
+PHP_METHOD(IteratorIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_IteratorIterator, zend_ce_traversable, DIT_IteratorIterator);
 } /* }}} */
 
-static const zend_function_entry spl_funcs_IteratorIterator[] = {
-       SPL_ME(IteratorIterator, __construct,      arginfo_class_IteratorIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          rewind,           arginfo_class_IteratorIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          valid,            arginfo_class_IteratorIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          key,              arginfo_class_IteratorIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          current,          arginfo_class_IteratorIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          next,             arginfo_class_IteratorIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          getInnerIterator, arginfo_class_IteratorIterator_getInnerIterator, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 /* {{{ proto NoRewindIterator::__construct(Iterator it)
    Create an iterator from another iterator */
-SPL_METHOD(NoRewindIterator, __construct)
+PHP_METHOD(NoRewindIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_NoRewindIterator, zend_ce_iterator, DIT_NoRewindIterator);
 } /* }}} */
 
 /* {{{ proto void NoRewindIterator::rewind()
    Prevent a call to inner iterators rewind() */
-SPL_METHOD(NoRewindIterator, rewind)
+PHP_METHOD(NoRewindIterator, rewind)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -2952,7 +2786,7 @@ SPL_METHOD(NoRewindIterator, rewind)
 
 /* {{{ proto bool NoRewindIterator::valid()
    Return inner iterators valid() */
-SPL_METHOD(NoRewindIterator, valid)
+PHP_METHOD(NoRewindIterator, valid)
 {
        spl_dual_it_object   *intern;
 
@@ -2966,7 +2800,7 @@ SPL_METHOD(NoRewindIterator, valid)
 
 /* {{{ proto mixed NoRewindIterator::key()
    Return inner iterators key() */
-SPL_METHOD(NoRewindIterator, key)
+PHP_METHOD(NoRewindIterator, key)
 {
        spl_dual_it_object   *intern;
 
@@ -2985,7 +2819,7 @@ SPL_METHOD(NoRewindIterator, key)
 
 /* {{{ proto mixed NoRewindIterator::current()
    Return inner iterators current() */
-SPL_METHOD(NoRewindIterator, current)
+PHP_METHOD(NoRewindIterator, current)
 {
        spl_dual_it_object   *intern;
        zval *data;
@@ -3003,7 +2837,7 @@ SPL_METHOD(NoRewindIterator, current)
 
 /* {{{ proto void NoRewindIterator::next()
    Return inner iterators next() */
-SPL_METHOD(NoRewindIterator, next)
+PHP_METHOD(NoRewindIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -3015,27 +2849,16 @@ SPL_METHOD(NoRewindIterator, next)
        intern->inner.iterator->funcs->move_forward(intern->inner.iterator);
 } /* }}} */
 
-static const zend_function_entry spl_funcs_NoRewindIterator[] = {
-       SPL_ME(NoRewindIterator, __construct,      arginfo_class_NoRewindIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(NoRewindIterator, rewind,           arginfo_class_NoRewindIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(NoRewindIterator, valid,            arginfo_class_NoRewindIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(NoRewindIterator, key,              arginfo_class_NoRewindIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(NoRewindIterator, current,          arginfo_class_NoRewindIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(NoRewindIterator, next,             arginfo_class_NoRewindIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,          getInnerIterator, arginfo_class_NoRewindIterator_getInnerIterator, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 /* {{{ proto InfiniteIterator::__construct(Iterator it)
    Create an iterator from another iterator */
-SPL_METHOD(InfiniteIterator, __construct)
+PHP_METHOD(InfiniteIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_InfiniteIterator, zend_ce_iterator, DIT_InfiniteIterator);
 } /* }}} */
 
 /* {{{ proto void InfiniteIterator::next()
    Prevent a call to inner iterators rewind() (internally the current data will be fetched if valid()) */
-SPL_METHOD(InfiniteIterator, next)
+PHP_METHOD(InfiniteIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -3056,15 +2879,9 @@ SPL_METHOD(InfiniteIterator, next)
        }
 } /* }}} */
 
-static const zend_function_entry spl_funcs_InfiniteIterator[] = {
-       SPL_ME(InfiniteIterator, __construct,      arginfo_class_InfiniteIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(InfiniteIterator, next,             arginfo_class_InfiniteIterator_next, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 /* {{{ proto void EmptyIterator::rewind()
    Does nothing  */
-SPL_METHOD(EmptyIterator, rewind)
+PHP_METHOD(EmptyIterator, rewind)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -3073,7 +2890,7 @@ SPL_METHOD(EmptyIterator, rewind)
 
 /* {{{ proto false EmptyIterator::valid()
    Return false */
-SPL_METHOD(EmptyIterator, valid)
+PHP_METHOD(EmptyIterator, valid)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -3084,7 +2901,7 @@ SPL_METHOD(EmptyIterator, valid)
 
 /* {{{ proto void EmptyIterator::key()
    Throws exception BadMethodCallException */
-SPL_METHOD(EmptyIterator, key)
+PHP_METHOD(EmptyIterator, key)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -3095,7 +2912,7 @@ SPL_METHOD(EmptyIterator, key)
 
 /* {{{ proto void EmptyIterator::current()
    Throws exception BadMethodCallException */
-SPL_METHOD(EmptyIterator, current)
+PHP_METHOD(EmptyIterator, current)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
@@ -3106,22 +2923,13 @@ SPL_METHOD(EmptyIterator, current)
 
 /* {{{ proto void EmptyIterator::next()
    Does nothing */
-SPL_METHOD(EmptyIterator, next)
+PHP_METHOD(EmptyIterator, next)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                RETURN_THROWS();
        }
 } /* }}} */
 
-static const zend_function_entry spl_funcs_EmptyIterator[] = {
-       SPL_ME(EmptyIterator, rewind,           arginfo_class_EmptyIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(EmptyIterator, valid,            arginfo_class_EmptyIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(EmptyIterator, key,              arginfo_class_EmptyIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(EmptyIterator, current,          arginfo_class_EmptyIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(EmptyIterator, next,             arginfo_class_EmptyIterator_next, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 int spl_append_it_next_iterator(spl_dual_it_object *intern) /* {{{*/
 {
        spl_dual_it_free(intern);
@@ -3170,14 +2978,14 @@ void spl_append_it_next(spl_dual_it_object *intern) /* {{{ */
 
 /* {{{ proto AppendIterator::__construct()
    Create an AppendIterator */
-SPL_METHOD(AppendIterator, __construct)
+PHP_METHOD(AppendIterator, __construct)
 {
        spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_AppendIterator, zend_ce_iterator, DIT_AppendIterator);
 } /* }}} */
 
 /* {{{ proto void AppendIterator::append(Iterator it)
    Append an iterator */
-SPL_METHOD(AppendIterator, append)
+PHP_METHOD(AppendIterator, append)
 {
        spl_dual_it_object   *intern;
        zval *it;
@@ -3208,7 +3016,7 @@ SPL_METHOD(AppendIterator, append)
 
 /* {{{ proto mixed AppendIterator::current()
    Get the current element value */
-SPL_METHOD(AppendIterator, current)
+PHP_METHOD(AppendIterator, current)
 {
        spl_dual_it_object   *intern;
 
@@ -3230,7 +3038,7 @@ SPL_METHOD(AppendIterator, current)
 
 /* {{{ proto void AppendIterator::rewind()
    Rewind to the first iterator and rewind the first iterator, too */
-SPL_METHOD(AppendIterator, rewind)
+PHP_METHOD(AppendIterator, rewind)
 {
        spl_dual_it_object   *intern;
 
@@ -3248,7 +3056,7 @@ SPL_METHOD(AppendIterator, rewind)
 
 /* {{{ proto bool AppendIterator::valid()
    Check if the current state is valid */
-SPL_METHOD(AppendIterator, valid)
+PHP_METHOD(AppendIterator, valid)
 {
        spl_dual_it_object   *intern;
 
@@ -3263,7 +3071,7 @@ SPL_METHOD(AppendIterator, valid)
 
 /* {{{ proto void AppendIterator::next()
    Forward to next element */
-SPL_METHOD(AppendIterator, next)
+PHP_METHOD(AppendIterator, next)
 {
        spl_dual_it_object   *intern;
 
@@ -3278,7 +3086,7 @@ SPL_METHOD(AppendIterator, next)
 
 /* {{{ proto int AppendIterator::getIteratorIndex()
    Get index of iterator */
-SPL_METHOD(AppendIterator, getIteratorIndex)
+PHP_METHOD(AppendIterator, getIteratorIndex)
 {
        spl_dual_it_object   *intern;
 
@@ -3294,7 +3102,7 @@ SPL_METHOD(AppendIterator, getIteratorIndex)
 
 /* {{{ proto ArrayIterator AppendIterator::getArrayIterator()
    Get access to inner ArrayIterator */
-SPL_METHOD(AppendIterator, getArrayIterator)
+PHP_METHOD(AppendIterator, getArrayIterator)
 {
        spl_dual_it_object   *intern;
        zval *value;
@@ -3309,20 +3117,6 @@ SPL_METHOD(AppendIterator, getArrayIterator)
        ZVAL_COPY_DEREF(return_value, value);
 } /* }}} */
 
-static const zend_function_entry spl_funcs_AppendIterator[] = {
-       SPL_ME(AppendIterator, __construct,      arginfo_class_AppendIterator___construct, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, append,           arginfo_class_AppendIterator_append, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, rewind,           arginfo_class_AppendIterator_rewind, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, valid,            arginfo_class_AppendIterator_valid, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,        key,              arginfo_class_AppendIterator_key, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, current,          arginfo_class_AppendIterator_current, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, next,             arginfo_class_AppendIterator_next, ZEND_ACC_PUBLIC)
-       SPL_ME(dual_it,        getInnerIterator, arginfo_class_AppendIterator_getInnerIterator, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, getIteratorIndex, arginfo_class_AppendIterator_getIteratorIndex, ZEND_ACC_PUBLIC)
-       SPL_ME(AppendIterator, getArrayIterator, arginfo_class_AppendIterator_getArrayIterator, ZEND_ACC_PUBLIC)
-       PHP_FE_END
-};
-
 PHPAPI int spl_iterator_apply(zval *obj, spl_iterator_apply_func_t apply_func, void *puser)
 {
        zend_object_iterator   *iter;
@@ -3494,11 +3288,6 @@ PHP_FUNCTION(iterator_apply)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_OuterIterator[] = {
-       SPL_ABSTRACT_ME(OuterIterator, getInnerIterator,   arginfo_class_OuterIterator_getInnerIterator)
-       PHP_FE_END
-};
-
 /* {{{ PHP_MINIT_FUNCTION(spl_iterators)
  */
 PHP_MINIT_FUNCTION(spl_iterators)
@@ -3506,7 +3295,7 @@ PHP_MINIT_FUNCTION(spl_iterators)
        REGISTER_SPL_INTERFACE(RecursiveIterator);
        REGISTER_SPL_ITERATOR(RecursiveIterator);
 
-       REGISTER_SPL_STD_CLASS_EX(RecursiveIteratorIterator, spl_RecursiveIteratorIterator_new, spl_funcs_RecursiveIteratorIterator);
+       REGISTER_SPL_STD_CLASS_EX(RecursiveIteratorIterator, spl_RecursiveIteratorIterator_new, class_RecursiveIteratorIterator_methods);
        REGISTER_SPL_ITERATOR(RecursiveIteratorIterator);
 
        memcpy(&spl_handlers_rec_it_it, &std_object_handlers, sizeof(zend_object_handlers));
@@ -3533,30 +3322,30 @@ PHP_MINIT_FUNCTION(spl_iterators)
        REGISTER_SPL_INTERFACE(OuterIterator);
        REGISTER_SPL_ITERATOR(OuterIterator);
 
-       REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, spl_funcs_IteratorIterator);
+       REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, class_IteratorIterator_methods);
        REGISTER_SPL_ITERATOR(IteratorIterator);
        REGISTER_SPL_IMPLEMENTS(IteratorIterator, OuterIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(FilterIterator, IteratorIterator, spl_dual_it_new, spl_funcs_FilterIterator);
+       REGISTER_SPL_SUB_CLASS_EX(FilterIterator, IteratorIterator, spl_dual_it_new, class_FilterIterator_methods);
        spl_ce_FilterIterator->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveFilterIterator, FilterIterator, spl_dual_it_new, spl_funcs_RecursiveFilterIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveFilterIterator, FilterIterator, spl_dual_it_new, class_RecursiveFilterIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveFilterIterator, RecursiveIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(CallbackFilterIterator, FilterIterator, spl_dual_it_new, spl_funcs_CallbackFilterIterator);
+       REGISTER_SPL_SUB_CLASS_EX(CallbackFilterIterator, FilterIterator, spl_dual_it_new, class_CallbackFilterIterator_methods);
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveCallbackFilterIterator, CallbackFilterIterator, spl_dual_it_new, spl_funcs_RecursiveCallbackFilterIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveCallbackFilterIterator, CallbackFilterIterator, spl_dual_it_new, class_RecursiveCallbackFilterIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveCallbackFilterIterator, RecursiveIterator);
 
 
-       REGISTER_SPL_SUB_CLASS_EX(ParentIterator, RecursiveFilterIterator, spl_dual_it_new, spl_funcs_ParentIterator);
+       REGISTER_SPL_SUB_CLASS_EX(ParentIterator, RecursiveFilterIterator, spl_dual_it_new, class_ParentIterator_methods);
 
        REGISTER_SPL_INTERFACE(SeekableIterator);
        REGISTER_SPL_ITERATOR(SeekableIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(LimitIterator, IteratorIterator, spl_dual_it_new, spl_funcs_LimitIterator);
+       REGISTER_SPL_SUB_CLASS_EX(LimitIterator, IteratorIterator, spl_dual_it_new, class_LimitIterator_methods);
 
-       REGISTER_SPL_SUB_CLASS_EX(CachingIterator, IteratorIterator, spl_dual_it_new, spl_funcs_CachingIterator);
+       REGISTER_SPL_SUB_CLASS_EX(CachingIterator, IteratorIterator, spl_dual_it_new, class_CachingIterator_methods);
        REGISTER_SPL_IMPLEMENTS(CachingIterator, ArrayAccess);
        REGISTER_SPL_IMPLEMENTS(CachingIterator, Countable);
        REGISTER_SPL_IMPLEMENTS(CachingIterator, Stringable);
@@ -3568,17 +3357,17 @@ PHP_MINIT_FUNCTION(spl_iterators)
        REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "TOSTRING_USE_INNER",   CIT_TOSTRING_USE_INNER);
        REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "FULL_CACHE",           CIT_FULL_CACHE);
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator, spl_dual_it_new, spl_funcs_RecursiveCachingIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator, spl_dual_it_new, class_RecursiveCachingIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveCachingIterator, RecursiveIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(NoRewindIterator, IteratorIterator, spl_dual_it_new, spl_funcs_NoRewindIterator);
+       REGISTER_SPL_SUB_CLASS_EX(NoRewindIterator, IteratorIterator, spl_dual_it_new, class_NoRewindIterator_methods);
 
-       REGISTER_SPL_SUB_CLASS_EX(AppendIterator, IteratorIterator, spl_dual_it_new, spl_funcs_AppendIterator);
+       REGISTER_SPL_SUB_CLASS_EX(AppendIterator, IteratorIterator, spl_dual_it_new, class_AppendIterator_methods);
 
        REGISTER_SPL_IMPLEMENTS(RecursiveIteratorIterator, OuterIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(InfiniteIterator, IteratorIterator, spl_dual_it_new, spl_funcs_InfiniteIterator);
-       REGISTER_SPL_SUB_CLASS_EX(RegexIterator, FilterIterator, spl_dual_it_new, spl_funcs_RegexIterator);
+       REGISTER_SPL_SUB_CLASS_EX(InfiniteIterator, IteratorIterator, spl_dual_it_new, class_InfiniteIterator_methods);
+       REGISTER_SPL_SUB_CLASS_EX(RegexIterator, FilterIterator, spl_dual_it_new, class_RegexIterator_methods);
        REGISTER_SPL_CLASS_CONST_LONG(RegexIterator, "USE_KEY",     REGIT_USE_KEY);
        REGISTER_SPL_CLASS_CONST_LONG(RegexIterator, "INVERT_MATCH",REGIT_INVERTED);
        REGISTER_SPL_CLASS_CONST_LONG(RegexIterator, "MATCH",       REGIT_MODE_MATCH);
@@ -3587,13 +3376,13 @@ PHP_MINIT_FUNCTION(spl_iterators)
        REGISTER_SPL_CLASS_CONST_LONG(RegexIterator, "SPLIT",       REGIT_MODE_SPLIT);
        REGISTER_SPL_CLASS_CONST_LONG(RegexIterator, "REPLACE",     REGIT_MODE_REPLACE);
        REGISTER_SPL_PROPERTY(RegexIterator, "replacement", 0);
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveRegexIterator, RegexIterator, spl_dual_it_new, spl_funcs_RecursiveRegexIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveRegexIterator, RegexIterator, spl_dual_it_new, class_RecursiveRegexIterator_methods);
        REGISTER_SPL_IMPLEMENTS(RecursiveRegexIterator, RecursiveIterator);
 
-       REGISTER_SPL_STD_CLASS_EX(EmptyIterator, NULL, spl_funcs_EmptyIterator);
+       REGISTER_SPL_STD_CLASS_EX(EmptyIterator, NULL, class_EmptyIterator_methods);
        REGISTER_SPL_ITERATOR(EmptyIterator);
 
-       REGISTER_SPL_SUB_CLASS_EX(RecursiveTreeIterator, RecursiveIteratorIterator, spl_RecursiveTreeIterator_new, spl_funcs_RecursiveTreeIterator);
+       REGISTER_SPL_SUB_CLASS_EX(RecursiveTreeIterator, RecursiveIteratorIterator, spl_RecursiveTreeIterator_new, class_RecursiveTreeIterator_methods);
        REGISTER_SPL_CLASS_CONST_LONG(RecursiveTreeIterator, "BYPASS_CURRENT",      RTIT_BYPASS_CURRENT);
        REGISTER_SPL_CLASS_CONST_LONG(RecursiveTreeIterator, "BYPASS_KEY",          RTIT_BYPASS_KEY);
        REGISTER_SPL_CLASS_CONST_LONG(RecursiveTreeIterator, "PREFIX_LEFT",         0);
index 7c407f2998347ba18ee743644f57febe0f713a07..fa97f45b62a3d5716546e3166a8b20ee8715dd3e 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 class EmptyIterator implements Iterator
 {
     /** @return void */
@@ -30,7 +32,10 @@ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements
 {
     public function __construct(RecursiveIterator $iterator, callable $callback) {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias RecursiveFilterIterator::hasChildren
+     */
     public function hasChildren() {}
 
     /** @return RecursiveCallbackFilterIterator */
@@ -81,7 +86,7 @@ class RecursiveIteratorIterator implements OuterIterator
     /** @return void */
     public function endIteration() {}
 
-    /** @return bool */
+    /** @return bool|null */
     public function callHasChildren() {}
 
     /** @return RecursiveIterator|null */
@@ -143,20 +148,8 @@ abstract class FilterIterator extends IteratorIterator
     /** @return void */
     public function rewind() {}
 
-    /** @return bool */
-    public function valid() {}
-
-    /** @return mixed */
-    public function key() {}
-
-    /** @return mixed */
-    public function current() {}
-
     /** @return void */
     public function next() {}
-
-    /** @return Iterator|null */
-    public function getInnerIterator() {}
 }
 
 abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator
@@ -174,7 +167,10 @@ class ParentIterator extends RecursiveFilterIterator
 {
     public function __construct(RecursiveIterator $iterator) {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias RecursiveFilterIterator::hasChildren
+     */
     public function accept() {}
 }
 
@@ -194,12 +190,6 @@ class LimitIterator extends IteratorIterator
     /** @return bool */
     public function valid() {}
 
-    /** @return mixed */
-    public function key() {}
-
-    /** @return mixed */
-    public function current() {}
-
     /** @return void */
     public function next() {}
 
@@ -208,9 +198,6 @@ class LimitIterator extends IteratorIterator
 
     /** @return int */
     public function getPosition() {}
-
-    /** @return Iterator|null */
-    public function getInnerIterator() {}
 }
 
 class CachingIterator extends IteratorIterator implements ArrayAccess, Countable
@@ -223,12 +210,6 @@ class CachingIterator extends IteratorIterator implements ArrayAccess, Countable
     /** @return bool */
     public function valid() {}
 
-    /** @return mixed */
-    public function key() {}
-
-    /** @return mixed */
-    public function current() {}
-
     /** @return void */
     public function next() {}
 
@@ -237,9 +218,6 @@ class CachingIterator extends IteratorIterator implements ArrayAccess, Countable
 
     public function __toString(): string {}
 
-    /** @return Iterator|null */
-    public function getInnerIterator() {}
-
     /** @return int */
     public function getFlags() {}
 
@@ -307,9 +285,6 @@ class NoRewindIterator extends IteratorIterator
 
     /** @return void */
     public function next() {}
-
-    /** @return Iterator|null */
-    public function getInnerIterator() {}
 }
 
 class AppendIterator extends IteratorIterator
@@ -325,18 +300,12 @@ class AppendIterator extends IteratorIterator
     /** @return bool */
     public function valid() {}
 
-    /** @return mixed */
-    public function key() {}
-
     /** @return mixed */
     public function current() {}
 
     /** @return void */
     public function next() {}
 
-    /** @return Iterator|null */
-    public function getInnerIterator() {}
-
     /** @return int */
     public function getIteratorIndex() {}
 
@@ -388,7 +357,10 @@ class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator
     /** @return bool */
     public function accept() {}
 
-    /** @return bool */
+    /**
+     * @return bool
+     * @alias RecursiveFilterIterator::hasChildren
+     */
     public function hasChildren() {}
 
     /** @return RecursiveRegexIterator */
@@ -403,42 +375,12 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator
         int $mode = self::SELF_FIRST
     ) {}
 
-    /** @return void */
-    public function rewind() {}
-
-    /** @return bool */
-    public function valid() {}
-
     /** @return mixed */
     public function key() {}
 
     /** @return mixed */
     public function current() {}
 
-    /** @return void */
-    public function next() {}
-
-    /** @return void */
-    public function beginIteration() {}
-
-    /** @return void */
-    public function endIteration() {}
-
-    /** @return bool|null */
-    public function callHasChildren() {}
-
-    /** @return RecursiveIterator|null */
-    public function callGetChildren() {}
-
-    /** @return void */
-    public function beginChildren() {}
-
-    /** @return void */
-    public function endChildren() {}
-
-    /** @return void */
-    public function nextElement() {}
-
     /** @return string */
     public function getPrefix() {}
 
index 6f2690ac87bbd2a73334a61ed08ab7c085b2eee6..5a2bb25ed286dbdab9d4c7fefe2b462b8d75bdc4 100644 (file)
@@ -102,16 +102,8 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_FilterIterator_rewind arginfo_class_EmptyIterator_current
 
-#define arginfo_class_FilterIterator_valid arginfo_class_EmptyIterator_current
-
-#define arginfo_class_FilterIterator_key arginfo_class_EmptyIterator_current
-
-#define arginfo_class_FilterIterator_current arginfo_class_EmptyIterator_current
-
 #define arginfo_class_FilterIterator_next arginfo_class_EmptyIterator_current
 
-#define arginfo_class_FilterIterator_getInnerIterator arginfo_class_EmptyIterator_current
-
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveFilterIterator___construct, 0, 0, 1)
        ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
 ZEND_END_ARG_INFO()
@@ -138,18 +130,12 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_LimitIterator_valid arginfo_class_EmptyIterator_current
 
-#define arginfo_class_LimitIterator_key arginfo_class_EmptyIterator_current
-
-#define arginfo_class_LimitIterator_current arginfo_class_EmptyIterator_current
-
 #define arginfo_class_LimitIterator_next arginfo_class_EmptyIterator_current
 
 #define arginfo_class_LimitIterator_seek arginfo_class_SeekableIterator_seek
 
 #define arginfo_class_LimitIterator_getPosition arginfo_class_EmptyIterator_current
 
-#define arginfo_class_LimitIterator_getInnerIterator arginfo_class_EmptyIterator_current
-
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator___construct, 0, 0, 1)
        ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "self::CALL_TOSTRING")
@@ -159,10 +145,6 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_CachingIterator_valid arginfo_class_EmptyIterator_current
 
-#define arginfo_class_CachingIterator_key arginfo_class_EmptyIterator_current
-
-#define arginfo_class_CachingIterator_current arginfo_class_EmptyIterator_current
-
 #define arginfo_class_CachingIterator_next arginfo_class_EmptyIterator_current
 
 #define arginfo_class_CachingIterator_hasNext arginfo_class_EmptyIterator_current
@@ -170,8 +152,6 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator___toString, 0, 0, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
-#define arginfo_class_CachingIterator_getInnerIterator arginfo_class_EmptyIterator_current
-
 #define arginfo_class_CachingIterator_getFlags arginfo_class_EmptyIterator_current
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator_setFlags, 0, 0, 1)
@@ -213,8 +193,6 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_NoRewindIterator_next arginfo_class_EmptyIterator_current
 
-#define arginfo_class_NoRewindIterator_getInnerIterator arginfo_class_EmptyIterator_current
-
 #define arginfo_class_AppendIterator___construct arginfo_class_EmptyIterator_current
 
 #define arginfo_class_AppendIterator_append arginfo_class_FilterIterator___construct
@@ -223,14 +201,10 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_class_AppendIterator_valid arginfo_class_EmptyIterator_current
 
-#define arginfo_class_AppendIterator_key arginfo_class_EmptyIterator_current
-
 #define arginfo_class_AppendIterator_current arginfo_class_EmptyIterator_current
 
 #define arginfo_class_AppendIterator_next arginfo_class_EmptyIterator_current
 
-#define arginfo_class_AppendIterator_getInnerIterator arginfo_class_EmptyIterator_current
-
 #define arginfo_class_AppendIterator_getIteratorIndex arginfo_class_EmptyIterator_current
 
 #define arginfo_class_AppendIterator_getArrayIterator arginfo_class_EmptyIterator_current
@@ -288,30 +262,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator___construct, 0, 0, 1)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "self::SELF_FIRST")
 ZEND_END_ARG_INFO()
 
-#define arginfo_class_RecursiveTreeIterator_rewind arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_valid arginfo_class_EmptyIterator_current
-
 #define arginfo_class_RecursiveTreeIterator_key arginfo_class_EmptyIterator_current
 
 #define arginfo_class_RecursiveTreeIterator_current arginfo_class_EmptyIterator_current
 
-#define arginfo_class_RecursiveTreeIterator_next arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_beginIteration arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_endIteration arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_callHasChildren arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_callGetChildren arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_beginChildren arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_endChildren arginfo_class_EmptyIterator_current
-
-#define arginfo_class_RecursiveTreeIterator_nextElement arginfo_class_EmptyIterator_current
-
 #define arginfo_class_RecursiveTreeIterator_getPrefix arginfo_class_EmptyIterator_current
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator_setPostfix, 0, 0, 1)
@@ -326,3 +280,313 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_RecursiveTreeIterator_getEntry arginfo_class_EmptyIterator_current
 
 #define arginfo_class_RecursiveTreeIterator_getPostfix arginfo_class_EmptyIterator_current
+
+
+ZEND_METHOD(EmptyIterator, current);
+ZEND_METHOD(EmptyIterator, next);
+ZEND_METHOD(EmptyIterator, key);
+ZEND_METHOD(EmptyIterator, valid);
+ZEND_METHOD(EmptyIterator, rewind);
+ZEND_METHOD(CallbackFilterIterator, __construct);
+ZEND_METHOD(CallbackFilterIterator, accept);
+ZEND_METHOD(RecursiveCallbackFilterIterator, __construct);
+ZEND_METHOD(RecursiveFilterIterator, hasChildren);
+ZEND_METHOD(RecursiveCallbackFilterIterator, getChildren);
+ZEND_METHOD(RecursiveIteratorIterator, __construct);
+ZEND_METHOD(RecursiveIteratorIterator, rewind);
+ZEND_METHOD(RecursiveIteratorIterator, valid);
+ZEND_METHOD(RecursiveIteratorIterator, key);
+ZEND_METHOD(RecursiveIteratorIterator, current);
+ZEND_METHOD(RecursiveIteratorIterator, next);
+ZEND_METHOD(RecursiveIteratorIterator, getDepth);
+ZEND_METHOD(RecursiveIteratorIterator, getSubIterator);
+ZEND_METHOD(RecursiveIteratorIterator, getInnerIterator);
+ZEND_METHOD(RecursiveIteratorIterator, beginIteration);
+ZEND_METHOD(RecursiveIteratorIterator, endIteration);
+ZEND_METHOD(RecursiveIteratorIterator, callHasChildren);
+ZEND_METHOD(RecursiveIteratorIterator, callGetChildren);
+ZEND_METHOD(RecursiveIteratorIterator, beginChildren);
+ZEND_METHOD(RecursiveIteratorIterator, endChildren);
+ZEND_METHOD(RecursiveIteratorIterator, nextElement);
+ZEND_METHOD(RecursiveIteratorIterator, setMaxDepth);
+ZEND_METHOD(RecursiveIteratorIterator, getMaxDepth);
+ZEND_METHOD(IteratorIterator, __construct);
+ZEND_METHOD(IteratorIterator, getInnerIterator);
+ZEND_METHOD(IteratorIterator, rewind);
+ZEND_METHOD(IteratorIterator, valid);
+ZEND_METHOD(IteratorIterator, key);
+ZEND_METHOD(IteratorIterator, current);
+ZEND_METHOD(IteratorIterator, next);
+ZEND_METHOD(FilterIterator, __construct);
+ZEND_METHOD(FilterIterator, rewind);
+ZEND_METHOD(FilterIterator, next);
+ZEND_METHOD(RecursiveFilterIterator, __construct);
+ZEND_METHOD(RecursiveFilterIterator, getChildren);
+ZEND_METHOD(ParentIterator, __construct);
+ZEND_METHOD(LimitIterator, __construct);
+ZEND_METHOD(LimitIterator, rewind);
+ZEND_METHOD(LimitIterator, valid);
+ZEND_METHOD(LimitIterator, next);
+ZEND_METHOD(LimitIterator, seek);
+ZEND_METHOD(LimitIterator, getPosition);
+ZEND_METHOD(CachingIterator, __construct);
+ZEND_METHOD(CachingIterator, rewind);
+ZEND_METHOD(CachingIterator, valid);
+ZEND_METHOD(CachingIterator, next);
+ZEND_METHOD(CachingIterator, hasNext);
+ZEND_METHOD(CachingIterator, __toString);
+ZEND_METHOD(CachingIterator, getFlags);
+ZEND_METHOD(CachingIterator, setFlags);
+ZEND_METHOD(CachingIterator, offsetGet);
+ZEND_METHOD(CachingIterator, offsetSet);
+ZEND_METHOD(CachingIterator, offsetUnset);
+ZEND_METHOD(CachingIterator, offsetExists);
+ZEND_METHOD(CachingIterator, getCache);
+ZEND_METHOD(CachingIterator, count);
+ZEND_METHOD(RecursiveCachingIterator, __construct);
+ZEND_METHOD(RecursiveCachingIterator, hasChildren);
+ZEND_METHOD(RecursiveCachingIterator, getChildren);
+ZEND_METHOD(NoRewindIterator, __construct);
+ZEND_METHOD(NoRewindIterator, rewind);
+ZEND_METHOD(NoRewindIterator, valid);
+ZEND_METHOD(NoRewindIterator, key);
+ZEND_METHOD(NoRewindIterator, current);
+ZEND_METHOD(NoRewindIterator, next);
+ZEND_METHOD(AppendIterator, __construct);
+ZEND_METHOD(AppendIterator, append);
+ZEND_METHOD(AppendIterator, rewind);
+ZEND_METHOD(AppendIterator, valid);
+ZEND_METHOD(AppendIterator, current);
+ZEND_METHOD(AppendIterator, next);
+ZEND_METHOD(AppendIterator, getIteratorIndex);
+ZEND_METHOD(AppendIterator, getArrayIterator);
+ZEND_METHOD(InfiniteIterator, __construct);
+ZEND_METHOD(InfiniteIterator, next);
+ZEND_METHOD(RegexIterator, __construct);
+ZEND_METHOD(RegexIterator, accept);
+ZEND_METHOD(RegexIterator, getMode);
+ZEND_METHOD(RegexIterator, setMode);
+ZEND_METHOD(RegexIterator, getFlags);
+ZEND_METHOD(RegexIterator, setFlags);
+ZEND_METHOD(RegexIterator, getRegex);
+ZEND_METHOD(RegexIterator, getPregFlags);
+ZEND_METHOD(RegexIterator, setPregFlags);
+ZEND_METHOD(RecursiveRegexIterator, __construct);
+ZEND_METHOD(RecursiveRegexIterator, accept);
+ZEND_METHOD(RecursiveRegexIterator, getChildren);
+ZEND_METHOD(RecursiveTreeIterator, __construct);
+ZEND_METHOD(RecursiveTreeIterator, key);
+ZEND_METHOD(RecursiveTreeIterator, current);
+ZEND_METHOD(RecursiveTreeIterator, getPrefix);
+ZEND_METHOD(RecursiveTreeIterator, setPostfix);
+ZEND_METHOD(RecursiveTreeIterator, setPrefixPart);
+ZEND_METHOD(RecursiveTreeIterator, getEntry);
+ZEND_METHOD(RecursiveTreeIterator, getPostfix);
+
+
+static const zend_function_entry class_EmptyIterator_methods[] = {
+       ZEND_ME(EmptyIterator, current, arginfo_class_EmptyIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(EmptyIterator, next, arginfo_class_EmptyIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(EmptyIterator, key, arginfo_class_EmptyIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(EmptyIterator, valid, arginfo_class_EmptyIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(EmptyIterator, rewind, arginfo_class_EmptyIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_CallbackFilterIterator_methods[] = {
+       ZEND_ME(CallbackFilterIterator, __construct, arginfo_class_CallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(CallbackFilterIterator, accept, arginfo_class_CallbackFilterIterator_accept, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveCallbackFilterIterator_methods[] = {
+       ZEND_ME(RecursiveCallbackFilterIterator, __construct, arginfo_class_RecursiveCallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(RecursiveFilterIterator, hasChildren, hasChildren, arginfo_class_RecursiveCallbackFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveCallbackFilterIterator, getChildren, arginfo_class_RecursiveCallbackFilterIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveIterator_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(RecursiveIterator, hasChildren, arginfo_class_RecursiveIterator_hasChildren, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_ABSTRACT_ME_WITH_FLAGS(RecursiveIterator, getChildren, arginfo_class_RecursiveIterator_getChildren, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveIteratorIterator_methods[] = {
+       ZEND_ME(RecursiveIteratorIterator, __construct, arginfo_class_RecursiveIteratorIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, rewind, arginfo_class_RecursiveIteratorIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, valid, arginfo_class_RecursiveIteratorIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, key, arginfo_class_RecursiveIteratorIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, current, arginfo_class_RecursiveIteratorIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, next, arginfo_class_RecursiveIteratorIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, getDepth, arginfo_class_RecursiveIteratorIterator_getDepth, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, getSubIterator, arginfo_class_RecursiveIteratorIterator_getSubIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, getInnerIterator, arginfo_class_RecursiveIteratorIterator_getInnerIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, beginIteration, arginfo_class_RecursiveIteratorIterator_beginIteration, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, endIteration, arginfo_class_RecursiveIteratorIterator_endIteration, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, callHasChildren, arginfo_class_RecursiveIteratorIterator_callHasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, callGetChildren, arginfo_class_RecursiveIteratorIterator_callGetChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, beginChildren, arginfo_class_RecursiveIteratorIterator_beginChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, endChildren, arginfo_class_RecursiveIteratorIterator_endChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, nextElement, arginfo_class_RecursiveIteratorIterator_nextElement, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, setMaxDepth, arginfo_class_RecursiveIteratorIterator_setMaxDepth, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveIteratorIterator, getMaxDepth, arginfo_class_RecursiveIteratorIterator_getMaxDepth, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_OuterIterator_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(OuterIterator, getInnerIterator, arginfo_class_OuterIterator_getInnerIterator, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_IteratorIterator_methods[] = {
+       ZEND_ME(IteratorIterator, __construct, arginfo_class_IteratorIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, getInnerIterator, arginfo_class_IteratorIterator_getInnerIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, rewind, arginfo_class_IteratorIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, valid, arginfo_class_IteratorIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, key, arginfo_class_IteratorIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, current, arginfo_class_IteratorIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(IteratorIterator, next, arginfo_class_IteratorIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_FilterIterator_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(FilterIterator, accept, arginfo_class_FilterIterator_accept, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_ME(FilterIterator, __construct, arginfo_class_FilterIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilterIterator, rewind, arginfo_class_FilterIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(FilterIterator, next, arginfo_class_FilterIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveFilterIterator_methods[] = {
+       ZEND_ME(RecursiveFilterIterator, __construct, arginfo_class_RecursiveFilterIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveFilterIterator, hasChildren, arginfo_class_RecursiveFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveFilterIterator, getChildren, arginfo_class_RecursiveFilterIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_ParentIterator_methods[] = {
+       ZEND_ME(ParentIterator, __construct, arginfo_class_ParentIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(RecursiveFilterIterator, accept, hasChildren, arginfo_class_ParentIterator_accept, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SeekableIterator_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SeekableIterator, seek, arginfo_class_SeekableIterator_seek, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_LimitIterator_methods[] = {
+       ZEND_ME(LimitIterator, __construct, arginfo_class_LimitIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(LimitIterator, rewind, arginfo_class_LimitIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(LimitIterator, valid, arginfo_class_LimitIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(LimitIterator, next, arginfo_class_LimitIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(LimitIterator, seek, arginfo_class_LimitIterator_seek, ZEND_ACC_PUBLIC)
+       ZEND_ME(LimitIterator, getPosition, arginfo_class_LimitIterator_getPosition, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_CachingIterator_methods[] = {
+       ZEND_ME(CachingIterator, __construct, arginfo_class_CachingIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, rewind, arginfo_class_CachingIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, valid, arginfo_class_CachingIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, next, arginfo_class_CachingIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, hasNext, arginfo_class_CachingIterator_hasNext, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, __toString, arginfo_class_CachingIterator___toString, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, getFlags, arginfo_class_CachingIterator_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, setFlags, arginfo_class_CachingIterator_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, offsetGet, arginfo_class_CachingIterator_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, offsetSet, arginfo_class_CachingIterator_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, offsetUnset, arginfo_class_CachingIterator_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, offsetExists, arginfo_class_CachingIterator_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, getCache, arginfo_class_CachingIterator_getCache, ZEND_ACC_PUBLIC)
+       ZEND_ME(CachingIterator, count, arginfo_class_CachingIterator_count, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveCachingIterator_methods[] = {
+       ZEND_ME(RecursiveCachingIterator, __construct, arginfo_class_RecursiveCachingIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveCachingIterator, hasChildren, arginfo_class_RecursiveCachingIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveCachingIterator, getChildren, arginfo_class_RecursiveCachingIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_NoRewindIterator_methods[] = {
+       ZEND_ME(NoRewindIterator, __construct, arginfo_class_NoRewindIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(NoRewindIterator, rewind, arginfo_class_NoRewindIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(NoRewindIterator, valid, arginfo_class_NoRewindIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(NoRewindIterator, key, arginfo_class_NoRewindIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(NoRewindIterator, current, arginfo_class_NoRewindIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(NoRewindIterator, next, arginfo_class_NoRewindIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_AppendIterator_methods[] = {
+       ZEND_ME(AppendIterator, __construct, arginfo_class_AppendIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, append, arginfo_class_AppendIterator_append, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, rewind, arginfo_class_AppendIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, valid, arginfo_class_AppendIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, current, arginfo_class_AppendIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, next, arginfo_class_AppendIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, getIteratorIndex, arginfo_class_AppendIterator_getIteratorIndex, ZEND_ACC_PUBLIC)
+       ZEND_ME(AppendIterator, getArrayIterator, arginfo_class_AppendIterator_getArrayIterator, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_InfiniteIterator_methods[] = {
+       ZEND_ME(InfiniteIterator, __construct, arginfo_class_InfiniteIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(InfiniteIterator, next, arginfo_class_InfiniteIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RegexIterator_methods[] = {
+       ZEND_ME(RegexIterator, __construct, arginfo_class_RegexIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, accept, arginfo_class_RegexIterator_accept, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, getMode, arginfo_class_RegexIterator_getMode, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, setMode, arginfo_class_RegexIterator_setMode, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, getFlags, arginfo_class_RegexIterator_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, setFlags, arginfo_class_RegexIterator_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, getRegex, arginfo_class_RegexIterator_getRegex, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, getPregFlags, arginfo_class_RegexIterator_getPregFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(RegexIterator, setPregFlags, arginfo_class_RegexIterator_setPregFlags, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveRegexIterator_methods[] = {
+       ZEND_ME(RecursiveRegexIterator, __construct, arginfo_class_RecursiveRegexIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveRegexIterator, accept, arginfo_class_RecursiveRegexIterator_accept, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(RecursiveFilterIterator, hasChildren, hasChildren, arginfo_class_RecursiveRegexIterator_hasChildren, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveRegexIterator, getChildren, arginfo_class_RecursiveRegexIterator_getChildren, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_RecursiveTreeIterator_methods[] = {
+       ZEND_ME(RecursiveTreeIterator, __construct, arginfo_class_RecursiveTreeIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, key, arginfo_class_RecursiveTreeIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, current, arginfo_class_RecursiveTreeIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, getPrefix, arginfo_class_RecursiveTreeIterator_getPrefix, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, setPostfix, arginfo_class_RecursiveTreeIterator_setPostfix, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, setPrefixPart, arginfo_class_RecursiveTreeIterator_setPrefixPart, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, getEntry, arginfo_class_RecursiveTreeIterator_getEntry, ZEND_ACC_PUBLIC)
+       ZEND_ME(RecursiveTreeIterator, getPostfix, arginfo_class_RecursiveTreeIterator_getPostfix, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
index 05f529e0d7f76323b024ca8f6a4e59d17aa8e28e..09f27595d943784bf0f2b536c30c74cda7b468c9 100644 (file)
 #include "spl_array.h"
 #include "spl_exceptions.h"
 
-SPL_METHOD(SplObserver, update);
-SPL_METHOD(SplSubject, attach);
-SPL_METHOD(SplSubject, detach);
-SPL_METHOD(SplSubject, notify);
-
-static const zend_function_entry spl_funcs_SplObserver[] = {
-       SPL_ABSTRACT_ME(SplObserver, update,   arginfo_class_SplObserver_update)
-       PHP_FE_END
-};
-
-static const zend_function_entry spl_funcs_SplSubject[] = {
-       SPL_ABSTRACT_ME(SplSubject,  attach,   arginfo_class_SplSubject_attach)
-       SPL_ABSTRACT_ME(SplSubject,  detach,   arginfo_class_SplSubject_detach)
-       SPL_ABSTRACT_ME(SplSubject,  notify,   arginfo_class_SplSubject_notify)
-       PHP_FE_END
-};
-
 PHPAPI zend_class_entry     *spl_ce_SplObserver;
 PHPAPI zend_class_entry     *spl_ce_SplSubject;
 PHPAPI zend_class_entry     *spl_ce_SplObjectStorage;
@@ -376,7 +359,7 @@ int spl_object_storage_contains(spl_SplObjectStorage *intern, zval *obj) /* {{{
 
 /* {{{ proto void SplObjectStorage::attach(object obj, mixed data = NULL)
  Attaches an object to the storage if not yet contained */
-SPL_METHOD(SplObjectStorage, attach)
+PHP_METHOD(SplObjectStorage, attach)
 {
        zval *obj, *inf = NULL;
 
@@ -390,7 +373,7 @@ SPL_METHOD(SplObjectStorage, attach)
 
 /* {{{ proto void SplObjectStorage::detach(object obj)
  Detaches an object from the storage */
-SPL_METHOD(SplObjectStorage, detach)
+PHP_METHOD(SplObjectStorage, detach)
 {
        zval *obj;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -406,7 +389,7 @@ SPL_METHOD(SplObjectStorage, detach)
 
 /* {{{ proto string SplObjectStorage::getHash(object obj)
  Returns the hash of an object */
-SPL_METHOD(SplObjectStorage, getHash)
+PHP_METHOD(SplObjectStorage, getHash)
 {
        zval *obj;
 
@@ -420,7 +403,7 @@ SPL_METHOD(SplObjectStorage, getHash)
 
 /* {{{ proto mixed SplObjectStorage::offsetGet(object obj)
  Returns associated information for a stored object */
-SPL_METHOD(SplObjectStorage, offsetGet)
+PHP_METHOD(SplObjectStorage, offsetGet)
 {
        zval *obj;
        spl_SplObjectStorageElement *element;
@@ -449,7 +432,7 @@ SPL_METHOD(SplObjectStorage, offsetGet)
 
 /* {{{ proto bool SplObjectStorage::addAll(SplObjectStorage $os)
  Add all elements contained in $os */
-SPL_METHOD(SplObjectStorage, addAll)
+PHP_METHOD(SplObjectStorage, addAll)
 {
        zval *obj;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -468,7 +451,7 @@ SPL_METHOD(SplObjectStorage, addAll)
 
 /* {{{ proto bool SplObjectStorage::removeAll(SplObjectStorage $os)
  Remove all elements contained in $os */
-SPL_METHOD(SplObjectStorage, removeAll)
+PHP_METHOD(SplObjectStorage, removeAll)
 {
        zval *obj;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -496,7 +479,7 @@ SPL_METHOD(SplObjectStorage, removeAll)
 
 /* {{{ proto bool SplObjectStorage::removeAllExcept(SplObjectStorage $os)
  Remove elements not common to both this SplObjectStorage instance and $os */
-SPL_METHOD(SplObjectStorage, removeAllExcept)
+PHP_METHOD(SplObjectStorage, removeAllExcept)
 {
        zval *obj;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -524,7 +507,7 @@ SPL_METHOD(SplObjectStorage, removeAllExcept)
 
 /* {{{ proto bool SplObjectStorage::contains(object obj)
  Determine whether an object is contained in the storage */
-SPL_METHOD(SplObjectStorage, contains)
+PHP_METHOD(SplObjectStorage, contains)
 {
        zval *obj;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -537,7 +520,7 @@ SPL_METHOD(SplObjectStorage, contains)
 
 /* {{{ proto int SplObjectStorage::count()
  Determine number of objects in storage */
-SPL_METHOD(SplObjectStorage, count)
+PHP_METHOD(SplObjectStorage, count)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
        zend_long mode = COUNT_NORMAL;
@@ -564,7 +547,7 @@ SPL_METHOD(SplObjectStorage, count)
 
 /* {{{ proto void SplObjectStorage::rewind()
  Rewind to first position */
-SPL_METHOD(SplObjectStorage, rewind)
+PHP_METHOD(SplObjectStorage, rewind)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -578,7 +561,7 @@ SPL_METHOD(SplObjectStorage, rewind)
 
 /* {{{ proto bool SplObjectStorage::valid()
  Returns whether current position is valid */
-SPL_METHOD(SplObjectStorage, valid)
+PHP_METHOD(SplObjectStorage, valid)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -591,7 +574,7 @@ SPL_METHOD(SplObjectStorage, valid)
 
 /* {{{ proto mixed SplObjectStorage::key()
  Returns current key */
-SPL_METHOD(SplObjectStorage, key)
+PHP_METHOD(SplObjectStorage, key)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -604,7 +587,7 @@ SPL_METHOD(SplObjectStorage, key)
 
 /* {{{ proto mixed SplObjectStorage::current()
  Returns current element */
-SPL_METHOD(SplObjectStorage, current)
+PHP_METHOD(SplObjectStorage, current)
 {
        spl_SplObjectStorageElement *element;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -621,7 +604,7 @@ SPL_METHOD(SplObjectStorage, current)
 
 /* {{{ proto mixed SplObjectStorage::getInfo()
  Returns associated information to current element */
-SPL_METHOD(SplObjectStorage, getInfo)
+PHP_METHOD(SplObjectStorage, getInfo)
 {
        spl_SplObjectStorageElement *element;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -638,7 +621,7 @@ SPL_METHOD(SplObjectStorage, getInfo)
 
 /* {{{ proto mixed SplObjectStorage::setInfo(mixed $inf)
  Sets associated information of current element to $inf */
-SPL_METHOD(SplObjectStorage, setInfo)
+PHP_METHOD(SplObjectStorage, setInfo)
 {
        spl_SplObjectStorageElement *element;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -657,7 +640,7 @@ SPL_METHOD(SplObjectStorage, setInfo)
 
 /* {{{ proto void SplObjectStorage::next()
  Moves position forward */
-SPL_METHOD(SplObjectStorage, next)
+PHP_METHOD(SplObjectStorage, next)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -671,7 +654,7 @@ SPL_METHOD(SplObjectStorage, next)
 
 /* {{{ proto string SplObjectStorage::serialize()
  Serializes storage */
-SPL_METHOD(SplObjectStorage, serialize)
+PHP_METHOD(SplObjectStorage, serialize)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -722,7 +705,7 @@ SPL_METHOD(SplObjectStorage, serialize)
 
 /* {{{ proto void SplObjectStorage::unserialize(string serialized)
  Unserializes storage */
-SPL_METHOD(SplObjectStorage, unserialize)
+PHP_METHOD(SplObjectStorage, unserialize)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -850,7 +833,7 @@ outexcept:
 } /* }}} */
 
 /* {{{ proto auto SplObjectStorage::__serialize() */
-SPL_METHOD(SplObjectStorage, __serialize)
+PHP_METHOD(SplObjectStorage, __serialize)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
        spl_SplObjectStorageElement *elem;
@@ -879,7 +862,7 @@ SPL_METHOD(SplObjectStorage, __serialize)
 } /* }}} */
 
 /* {{{ proto void SplObjectStorage::__unserialize(array serialized) */
-SPL_METHOD(SplObjectStorage, __unserialize)
+PHP_METHOD(SplObjectStorage, __unserialize)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
        HashTable *data;
@@ -922,7 +905,7 @@ SPL_METHOD(SplObjectStorage, __unserialize)
 }
 
 /* {{{ proto array SplObjectStorage::__debugInfo() */
-SPL_METHOD(SplObjectStorage, __debugInfo)
+PHP_METHOD(SplObjectStorage, __debugInfo)
 {
        if (zend_parse_parameters_none() == FAILURE) {
                return;
@@ -932,38 +915,6 @@ SPL_METHOD(SplObjectStorage, __debugInfo)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_SplObjectStorage[] = {
-       SPL_ME(SplObjectStorage,  attach,      arginfo_class_SplObjectStorage_attach,        0)
-       SPL_ME(SplObjectStorage,  detach,      arginfo_class_SplObjectStorage_detach,        0)
-       SPL_ME(SplObjectStorage,  contains,    arginfo_class_SplObjectStorage_contains,        0)
-       SPL_ME(SplObjectStorage,  addAll,      arginfo_class_SplObjectStorage_addAll,        0)
-       SPL_ME(SplObjectStorage,  removeAll,   arginfo_class_SplObjectStorage_removeAll,        0)
-       SPL_ME(SplObjectStorage,  removeAllExcept,   arginfo_class_SplObjectStorage_removeAllExcept,  0)
-       SPL_ME(SplObjectStorage,  getInfo,     arginfo_class_SplObjectStorage_getInfo,0)
-       SPL_ME(SplObjectStorage,  setInfo,     arginfo_class_SplObjectStorage_setInfo,       0)
-       SPL_ME(SplObjectStorage,  getHash,     arginfo_class_SplObjectStorage_getHash,       0)
-       SPL_ME(SplObjectStorage,  __debugInfo, arginfo_class_SplObjectStorage___debugInfo, 0)
-       /* Countable */
-       SPL_ME(SplObjectStorage,  count,       arginfo_class_SplObjectStorage_count,0)
-       /* Iterator */
-       SPL_ME(SplObjectStorage,  rewind,      arginfo_class_SplObjectStorage_rewind,0)
-       SPL_ME(SplObjectStorage,  valid,       arginfo_class_SplObjectStorage_valid,0)
-       SPL_ME(SplObjectStorage,  key,         arginfo_class_SplObjectStorage_key,0)
-       SPL_ME(SplObjectStorage,  current,     arginfo_class_SplObjectStorage_current,0)
-       SPL_ME(SplObjectStorage,  next,        arginfo_class_SplObjectStorage_next,0)
-       /* Serializable */
-       SPL_ME(SplObjectStorage,  unserialize, arginfo_class_SplObjectStorage_unserialize,    0)
-       SPL_ME(SplObjectStorage,  serialize,   arginfo_class_SplObjectStorage_serialize,0)
-       SPL_ME(SplObjectStorage,  __unserialize, arginfo_class_SplObjectStorage___unserialize,    0)
-       SPL_ME(SplObjectStorage,  __serialize,   arginfo_class_SplObjectStorage___serialize,0)
-       /* ArrayAccess */
-       SPL_MA(SplObjectStorage, offsetExists, SplObjectStorage, contains, arginfo_class_SplObjectStorage_offsetExists, 0)
-       SPL_MA(SplObjectStorage, offsetSet,    SplObjectStorage, attach,   arginfo_class_SplObjectStorage_offsetSet, 0)
-       SPL_MA(SplObjectStorage, offsetUnset,  SplObjectStorage, detach,   arginfo_class_SplObjectStorage_offsetUnset, 0)
-       SPL_ME(SplObjectStorage, offsetGet,    arginfo_class_SplObjectStorage_offsetGet,     0)
-       PHP_FE_END
-};
-
 typedef enum {
        MIT_NEED_ANY     = 0,
        MIT_NEED_ALL     = 1,
@@ -976,7 +927,7 @@ typedef enum {
 
 /* {{{ proto MultipleIterator::__construct([int flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC])
    Iterator that iterates over several iterators one after the other */
-SPL_METHOD(MultipleIterator, __construct)
+PHP_METHOD(MultipleIterator, __construct)
 {
        spl_SplObjectStorage   *intern;
        zend_long               flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC;
@@ -992,7 +943,7 @@ SPL_METHOD(MultipleIterator, __construct)
 
 /* {{{ proto int MultipleIterator::getFlags()
    Return current flags */
-SPL_METHOD(MultipleIterator, getFlags)
+PHP_METHOD(MultipleIterator, getFlags)
 {
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
 
@@ -1005,7 +956,7 @@ SPL_METHOD(MultipleIterator, getFlags)
 
 /* {{{ proto int MultipleIterator::setFlags(int flags)
    Set flags */
-SPL_METHOD(MultipleIterator, setFlags)
+PHP_METHOD(MultipleIterator, setFlags)
 {
        spl_SplObjectStorage *intern;
        intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -1018,7 +969,7 @@ SPL_METHOD(MultipleIterator, setFlags)
 
 /* {{{ proto void attachIterator(Iterator iterator[, mixed info]) throws InvalidArgumentException
    Attach a new iterator */
-SPL_METHOD(MultipleIterator, attachIterator)
+PHP_METHOD(MultipleIterator, attachIterator)
 {
        spl_SplObjectStorage        *intern;
        zval                        *iterator = NULL, *info = NULL;
@@ -1053,7 +1004,7 @@ SPL_METHOD(MultipleIterator, attachIterator)
 
 /* {{{ proto void MultipleIterator::detachIterator(Iterator iterator)
  Detaches an iterator */
-SPL_METHOD(MultipleIterator, detachIterator)
+PHP_METHOD(MultipleIterator, detachIterator)
 {
        zval *iterator;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -1069,7 +1020,7 @@ SPL_METHOD(MultipleIterator, detachIterator)
 
 /* {{{ proto bool MultipleIterator::containsIterator(Iterator iterator)
  Determine whether the iterator exists */
-SPL_METHOD(MultipleIterator, containsIterator)
+PHP_METHOD(MultipleIterator, containsIterator)
 {
        zval *iterator;
        spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -1082,7 +1033,7 @@ SPL_METHOD(MultipleIterator, containsIterator)
 
 /* {{{ proto void MultipleIterator::rewind()
    Rewind all attached iterator instances */
-SPL_METHOD(MultipleIterator, rewind)
+PHP_METHOD(MultipleIterator, rewind)
 {
        spl_SplObjectStorage        *intern;
        spl_SplObjectStorageElement *element;
@@ -1105,7 +1056,7 @@ SPL_METHOD(MultipleIterator, rewind)
 
 /* {{{ proto void MultipleIterator::next()
    Move all attached iterator instances forward */
-SPL_METHOD(MultipleIterator, next)
+PHP_METHOD(MultipleIterator, next)
 {
        spl_SplObjectStorage        *intern;
        spl_SplObjectStorageElement *element;
@@ -1128,7 +1079,7 @@ SPL_METHOD(MultipleIterator, next)
 
 /* {{{ proto bool MultipleIterator::valid()
    Return whether all or one sub iterator is valid depending on flags */
-SPL_METHOD(MultipleIterator, valid)
+PHP_METHOD(MultipleIterator, valid)
 {
        spl_SplObjectStorage        *intern;
        spl_SplObjectStorageElement *element;
@@ -1240,7 +1191,7 @@ static void spl_multiple_iterator_get_all(spl_SplObjectStorage *intern, int get_
 
 /* {{{ proto array current() throws RuntimeException throws InvalidArgumentException
    Return an array of all registered Iterator instances current() result */
-SPL_METHOD(MultipleIterator, current)
+PHP_METHOD(MultipleIterator, current)
 {
        spl_SplObjectStorage        *intern;
        intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -1255,7 +1206,7 @@ SPL_METHOD(MultipleIterator, current)
 
 /* {{{ proto array MultipleIterator::key()
    Return an array of all registered Iterator instances key() result */
-SPL_METHOD(MultipleIterator, key)
+PHP_METHOD(MultipleIterator, key)
 {
        spl_SplObjectStorage *intern;
        intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
@@ -1268,31 +1219,13 @@ SPL_METHOD(MultipleIterator, key)
 }
 /* }}} */
 
-static const zend_function_entry spl_funcs_MultipleIterator[] = {
-       SPL_ME(MultipleIterator,  __construct,            arginfo_class_MultipleIterator___construct,           0)
-       SPL_ME(MultipleIterator,  getFlags,               arginfo_class_MultipleIterator_getFlags,                      0)
-       SPL_ME(MultipleIterator,  setFlags,               arginfo_class_MultipleIterator_setFlags,          0)
-       SPL_ME(MultipleIterator,  attachIterator,         arginfo_class_MultipleIterator_attachIterator,    0)
-       SPL_ME(MultipleIterator,  detachIterator,         arginfo_class_MultipleIterator_detachIterator,        0)
-       SPL_ME(MultipleIterator,  containsIterator,       arginfo_class_MultipleIterator_containsIterator,      0)
-       SPL_MA(MultipleIterator,  countIterators,         SplObjectStorage, count,    arginfo_class_MultipleIterator_countIterators,    0)
-       SPL_MA(MultipleIterator, __debugInfo,             SplObjectStorage, __debugInfo, arginfo_class_MultipleIterator___debugInfo,    0)
-       /* Iterator */
-       SPL_ME(MultipleIterator,  rewind,                 arginfo_class_MultipleIterator_rewind,                        0)
-       SPL_ME(MultipleIterator,  valid,                  arginfo_class_MultipleIterator_valid,                         0)
-       SPL_ME(MultipleIterator,  key,                    arginfo_class_MultipleIterator_key,                           0)
-       SPL_ME(MultipleIterator,  current,                arginfo_class_MultipleIterator_current,                       0)
-       SPL_ME(MultipleIterator,  next,                   arginfo_class_MultipleIterator_next,                          0)
-       PHP_FE_END
-};
-
 /* {{{ PHP_MINIT_FUNCTION(spl_observer) */
 PHP_MINIT_FUNCTION(spl_observer)
 {
        REGISTER_SPL_INTERFACE(SplObserver);
        REGISTER_SPL_INTERFACE(SplSubject);
 
-       REGISTER_SPL_STD_CLASS_EX(SplObjectStorage, spl_SplObjectStorage_new, spl_funcs_SplObjectStorage);
+       REGISTER_SPL_STD_CLASS_EX(SplObjectStorage, spl_SplObjectStorage_new, class_SplObjectStorage_methods);
        memcpy(&spl_handler_SplObjectStorage, &std_object_handlers, sizeof(zend_object_handlers));
 
        spl_handler_SplObjectStorage.offset          = XtOffsetOf(spl_SplObjectStorage, std);
@@ -1307,7 +1240,7 @@ PHP_MINIT_FUNCTION(spl_observer)
        REGISTER_SPL_IMPLEMENTS(SplObjectStorage, Serializable);
        REGISTER_SPL_IMPLEMENTS(SplObjectStorage, ArrayAccess);
 
-       REGISTER_SPL_STD_CLASS_EX(MultipleIterator, spl_SplObjectStorage_new, spl_funcs_MultipleIterator);
+       REGISTER_SPL_STD_CLASS_EX(MultipleIterator, spl_SplObjectStorage_new, class_MultipleIterator_methods);
        REGISTER_SPL_ITERATOR(MultipleIterator);
 
        REGISTER_SPL_CLASS_CONST_LONG(MultipleIterator, "MIT_NEED_ANY",     MIT_NEED_ANY);
index 3c717c0770efb346210190cce4db3f983ad1a72d..9bb868ebe7dc03da15a95b7764746b4ef21a8a79 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+/** @generate-function-entries */
+
 interface SplObserver
 {
     /** @return void */
@@ -77,6 +79,7 @@ class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess
     /**
      * @param object $object
      * @return bool
+     * @alias SplObjectStorage::contains
      */
     public function offsetExists($object) {}
 
@@ -90,12 +93,14 @@ class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess
      * @param object $object
      * @param mixed $info
      * @return void
+     * @alias SplObjectStorage::attach
      */
     public function offsetSet($object, $info = null) {}
 
     /**
      * @param object $object
      * @return void
+     * @alias SplObjectStorage::detach
      */
     public function offsetUnset($object) {}
 
@@ -135,7 +140,10 @@ class MultipleIterator implements Iterator
     /** @return bool */
     public function containsIterator(Iterator $iterator) {}
 
-    /** @return int */
+    /**
+     * @return int
+     * @alias SplObjectStorage::count
+     */
     public function countIterators() {}
 
     /** @return void */
@@ -153,6 +161,9 @@ class MultipleIterator implements Iterator
     /** @return void */
     public function next() {}
 
-    /** @return array */
+    /**
+     * @return array
+     * @alias SplObjectStorage::__debugInfo
+     */
     public function __debugInfo() {}
 }
index a381c0dfbb47f4bfcc76d65d3490fa27c2853f9b..2cbe125246cae9c1e29f3a51461623b6100fcd46 100644 (file)
@@ -115,3 +115,98 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_MultipleIterator_next arginfo_class_SplSubject_notify
 
 #define arginfo_class_MultipleIterator___debugInfo arginfo_class_SplSubject_notify
+
+
+ZEND_METHOD(SplObjectStorage, attach);
+ZEND_METHOD(SplObjectStorage, detach);
+ZEND_METHOD(SplObjectStorage, contains);
+ZEND_METHOD(SplObjectStorage, addAll);
+ZEND_METHOD(SplObjectStorage, removeAll);
+ZEND_METHOD(SplObjectStorage, removeAllExcept);
+ZEND_METHOD(SplObjectStorage, getInfo);
+ZEND_METHOD(SplObjectStorage, setInfo);
+ZEND_METHOD(SplObjectStorage, count);
+ZEND_METHOD(SplObjectStorage, rewind);
+ZEND_METHOD(SplObjectStorage, valid);
+ZEND_METHOD(SplObjectStorage, key);
+ZEND_METHOD(SplObjectStorage, current);
+ZEND_METHOD(SplObjectStorage, next);
+ZEND_METHOD(SplObjectStorage, unserialize);
+ZEND_METHOD(SplObjectStorage, serialize);
+ZEND_METHOD(SplObjectStorage, offsetGet);
+ZEND_METHOD(SplObjectStorage, getHash);
+ZEND_METHOD(SplObjectStorage, __serialize);
+ZEND_METHOD(SplObjectStorage, __unserialize);
+ZEND_METHOD(SplObjectStorage, __debugInfo);
+ZEND_METHOD(MultipleIterator, __construct);
+ZEND_METHOD(MultipleIterator, getFlags);
+ZEND_METHOD(MultipleIterator, setFlags);
+ZEND_METHOD(MultipleIterator, attachIterator);
+ZEND_METHOD(MultipleIterator, detachIterator);
+ZEND_METHOD(MultipleIterator, containsIterator);
+ZEND_METHOD(MultipleIterator, rewind);
+ZEND_METHOD(MultipleIterator, valid);
+ZEND_METHOD(MultipleIterator, key);
+ZEND_METHOD(MultipleIterator, current);
+ZEND_METHOD(MultipleIterator, next);
+
+
+static const zend_function_entry class_SplObserver_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SplObserver, update, arginfo_class_SplObserver_update, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplSubject_methods[] = {
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SplSubject, attach, arginfo_class_SplSubject_attach, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SplSubject, detach, arginfo_class_SplSubject_detach, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_ABSTRACT_ME_WITH_FLAGS(SplSubject, notify, arginfo_class_SplSubject_notify, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_SplObjectStorage_methods[] = {
+       ZEND_ME(SplObjectStorage, attach, arginfo_class_SplObjectStorage_attach, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, detach, arginfo_class_SplObjectStorage_detach, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, contains, arginfo_class_SplObjectStorage_contains, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, addAll, arginfo_class_SplObjectStorage_addAll, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, removeAll, arginfo_class_SplObjectStorage_removeAll, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, removeAllExcept, arginfo_class_SplObjectStorage_removeAllExcept, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, getInfo, arginfo_class_SplObjectStorage_getInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, setInfo, arginfo_class_SplObjectStorage_setInfo, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, count, arginfo_class_SplObjectStorage_count, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, rewind, arginfo_class_SplObjectStorage_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, valid, arginfo_class_SplObjectStorage_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, key, arginfo_class_SplObjectStorage_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, current, arginfo_class_SplObjectStorage_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, next, arginfo_class_SplObjectStorage_next, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, unserialize, arginfo_class_SplObjectStorage_unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, serialize, arginfo_class_SplObjectStorage_serialize, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplObjectStorage, offsetExists, contains, arginfo_class_SplObjectStorage_offsetExists, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, offsetGet, arginfo_class_SplObjectStorage_offsetGet, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplObjectStorage, offsetSet, attach, arginfo_class_SplObjectStorage_offsetSet, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplObjectStorage, offsetUnset, detach, arginfo_class_SplObjectStorage_offsetUnset, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, getHash, arginfo_class_SplObjectStorage_getHash, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, __serialize, arginfo_class_SplObjectStorage___serialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, __unserialize, arginfo_class_SplObjectStorage___unserialize, ZEND_ACC_PUBLIC)
+       ZEND_ME(SplObjectStorage, __debugInfo, arginfo_class_SplObjectStorage___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};
+
+
+static const zend_function_entry class_MultipleIterator_methods[] = {
+       ZEND_ME(MultipleIterator, __construct, arginfo_class_MultipleIterator___construct, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, getFlags, arginfo_class_MultipleIterator_getFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, setFlags, arginfo_class_MultipleIterator_setFlags, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, attachIterator, arginfo_class_MultipleIterator_attachIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, detachIterator, arginfo_class_MultipleIterator_detachIterator, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, containsIterator, arginfo_class_MultipleIterator_containsIterator, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplObjectStorage, countIterators, count, arginfo_class_MultipleIterator_countIterators, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, rewind, arginfo_class_MultipleIterator_rewind, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, valid, arginfo_class_MultipleIterator_valid, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, key, arginfo_class_MultipleIterator_key, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, current, arginfo_class_MultipleIterator_current, ZEND_ACC_PUBLIC)
+       ZEND_ME(MultipleIterator, next, arginfo_class_MultipleIterator_next, ZEND_ACC_PUBLIC)
+       ZEND_MALIAS(SplObjectStorage, __debugInfo, __debugInfo, arginfo_class_MultipleIterator___debugInfo, ZEND_ACC_PUBLIC)
+       ZEND_FE_END
+};