diff options
author | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-04-25 19:08:53 +0200 |
---|---|---|
committer | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-04-25 23:54:56 +0200 |
commit | d7f7080bb5b42a4dd2d08c91c02645b9d9a74a50 (patch) | |
tree | c43afaab44d9481c571758e64d509d5cd1111f85 | |
parent | 77ee4e63a61e884d393713fa822df043eec6c87b (diff) | |
download | php-git-d7f7080bb5b42a4dd2d08c91c02645b9d9a74a50.tar.gz |
Generate methods entries from stubs for ext/spl
Closes GH-5458
26 files changed, 1443 insertions, 1114 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 9ccb9da3a5..759218e802 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -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), diff --git a/ext/spl/php_spl.h b/ext/spl/php_spl.h index 61fc80ac1d..a4aaba4690 100644 --- a/ext/spl/php_spl.h +++ b/ext/spl/php_spl.h @@ -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 */ diff --git a/ext/spl/php_spl.stub.php b/ext/spl/php_spl.stub.php index 1ff967358e..8811e1913a 100755 --- a/ext/spl/php_spl.stub.php +++ b/ext/spl/php_spl.stub.php @@ -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 {} diff --git a/ext/spl/php_spl_arginfo.h b/ext/spl/php_spl_arginfo.h index 29e813b551..0b19431fd4 100644 --- a/ext/spl/php_spl_arginfo.h +++ b/ext/spl/php_spl_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index 7b86de804e..ab263b6195 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -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; diff --git a/ext/spl/spl_array.stub.php b/ext/spl/spl_array.stub.php index a68a482edd..41cc787b16 100755 --- a/ext/spl/spl_array.stub.php +++ b/ext/spl/spl_array.stub.php @@ -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() {} } diff --git a/ext/spl/spl_array_arginfo.h b/ext/spl/spl_array_arginfo.h index c131c3f7fb..ac69fd70e9 100644 --- a/ext/spl/spl_array_arginfo.h +++ b/ext/spl/spl_array_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 2472f555a9..8b4c2560e6 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -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; } /* }}} */ diff --git a/ext/spl/spl_directory.stub.php b/ext/spl/spl_directory.stub.php index 6e8108b6a3..513dfef8aa 100755 --- a/ext/spl/spl_directory.stub.php +++ b/ext/spl/spl_directory.stub.php @@ -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 {} } diff --git a/ext/spl/spl_directory_arginfo.h b/ext/spl/spl_directory_arginfo.h index c65fba76b8..49fdb709ce 100644 --- a/ext/spl/spl_directory_arginfo.h +++ b/ext/spl/spl_directory_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c index c4fb6f292e..306aefa5d8 100644 --- a/ext/spl/spl_dllist.c +++ b/ext/spl/spl_dllist.c @@ -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; diff --git a/ext/spl/spl_dllist.stub.php b/ext/spl/spl_dllist.stub.php index 0cb91d8ddf..3cda7de01f 100755 --- a/ext/spl/spl_dllist.stub.php +++ b/ext/spl/spl_dllist.stub.php @@ -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() {} } diff --git a/ext/spl/spl_dllist_arginfo.h b/ext/spl/spl_dllist_arginfo.h index c5741cd120..7e1b327a8b 100644 --- a/ext/spl/spl_dllist_arginfo.h +++ b/ext/spl/spl_dllist_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c index ec037d9da6..2b86a85d51 100644 --- a/ext/spl/spl_fixedarray.c +++ b/ext/spl/spl_fixedarray.c @@ -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); diff --git a/ext/spl/spl_fixedarray.stub.php b/ext/spl/spl_fixedarray.stub.php index 4785f8d6e1..d571524db2 100755 --- a/ext/spl/spl_fixedarray.stub.php +++ b/ext/spl/spl_fixedarray.stub.php @@ -1,5 +1,7 @@ <?php +/** @generate-function-entries */ + class SplFixedArray implements Iterator, ArrayAccess, Countable { public function __construct(int $size = 0) {} diff --git a/ext/spl/spl_fixedarray_arginfo.h b/ext/spl/spl_fixedarray_arginfo.h index 2791b291cc..d76db04a5e 100644 --- a/ext/spl/spl_fixedarray_arginfo.h +++ b/ext/spl/spl_fixedarray_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_functions.h b/ext/spl/spl_functions.h index 8d23eda474..b1f0653607 100644 --- a/ext/spl/spl_functions.h +++ b/ext/spl/spl_functions.h @@ -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 */ diff --git a/ext/spl/spl_heap.c b/ext/spl/spl_heap.c index 2b3b681f97..42484a753b 100644 --- a/ext/spl/spl_heap.c +++ b/ext/spl/spl_heap.c @@ -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); diff --git a/ext/spl/spl_heap.stub.php b/ext/spl/spl_heap.stub.php index e98bed6cb2..5642d784e6 100644 --- a/ext/spl/spl_heap.stub.php +++ b/ext/spl/spl_heap.stub.php @@ -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 */ diff --git a/ext/spl/spl_heap_arginfo.h b/ext/spl/spl_heap_arginfo.h index 5d8b96bf14..f0b196788b 100644 --- a/ext/spl/spl_heap_arginfo.h +++ b/ext/spl/spl_heap_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 733d3ac7d5..8c59eb38da 100644 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -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); diff --git a/ext/spl/spl_iterators.stub.php b/ext/spl/spl_iterators.stub.php index 7c407f2998..fa97f45b62 100644 --- a/ext/spl/spl_iterators.stub.php +++ b/ext/spl/spl_iterators.stub.php @@ -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 @@ -326,17 +301,11 @@ class AppendIterator extends IteratorIterator 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() {} diff --git a/ext/spl/spl_iterators_arginfo.h b/ext/spl/spl_iterators_arginfo.h index 6f2690ac87..5a2bb25ed2 100644 --- a/ext/spl/spl_iterators_arginfo.h +++ b/ext/spl/spl_iterators_arginfo.h @@ -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 +}; diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c index 05f529e0d7..09f27595d9 100644 --- a/ext/spl/spl_observer.c +++ b/ext/spl/spl_observer.c @@ -37,23 +37,6 @@ #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); diff --git a/ext/spl/spl_observer.stub.php b/ext/spl/spl_observer.stub.php index 3c717c0770..9bb868ebe7 100644 --- a/ext/spl/spl_observer.stub.php +++ b/ext/spl/spl_observer.stub.php @@ -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() {} } diff --git a/ext/spl/spl_observer_arginfo.h b/ext/spl/spl_observer_arginfo.h index a381c0dfbb..2cbe125246 100644 --- a/ext/spl/spl_observer_arginfo.h +++ b/ext/spl/spl_observer_arginfo.h @@ -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 +}; |