return ht;
} /* }}} */
- static HashTable* spl_array_get_debug_info(zend_object *obj, int *is_temp) /* {{{ */
-static inline HashTable* spl_array_get_debug_info(zval *obj) /* {{{ */
++static inline HashTable* spl_array_get_debug_info(zend_object *obj) /* {{{ */
{
zval *storage;
zend_string *zname;
}
/* }}} */
- RETURN_ARR(spl_array_get_debug_info(getThis()));
+ /* {{{ proto void Array::__debugInfo() */
+ SPL_METHOD(Array, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
-/* {{{ arginfo and function table */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array___construct, 0, 0, 0)
- ZEND_ARG_INFO(0, input)
- ZEND_ARG_INFO(0, flags)
- ZEND_ARG_INFO(0, iterator_class)
-ZEND_END_ARG_INFO()
-
-/* ArrayIterator::__construct and ArrayObject::__construct have different signatures */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_iterator___construct, 0, 0, 0)
- ZEND_ARG_INFO(0, array)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetGet, 0, 0, 1)
- ZEND_ARG_INFO(0, index)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetSet, 0, 0, 2)
- ZEND_ARG_INFO(0, index)
- ZEND_ARG_INFO(0, newval)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_append, 0)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_seek, 0)
- ZEND_ARG_INFO(0, position)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_exchangeArray, 0)
- ZEND_ARG_INFO(0, input)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_setFlags, 0)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_setIteratorClass, 0)
- ZEND_ARG_INFO(0, iteratorClass)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_uXsort, 0)
- ZEND_ARG_INFO(0, cmp_function)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_unserialize, 0)
- ZEND_ARG_INFO(0, serialized)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_array_void, 0)
-ZEND_END_ARG_INFO()
-
++ 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_array___construct, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetExists, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetGet, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetSet, arginfo_array_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetUnset, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, append, arginfo_array_append, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getArrayCopy, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, count, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getFlags, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setFlags, arginfo_array_setFlags, ZEND_ACC_PUBLIC)
- SPL_ME(Array, asort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, ksort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uasort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uksort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natsort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natcasesort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __debugInfo, arginfo_array_void, ZEND_ACC_PUBLIC)
+ 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_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, exchangeArray, arginfo_array_exchangeArray, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setIteratorClass, arginfo_array_setIteratorClass, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getIteratorClass, arginfo_array_void, ZEND_ACC_PUBLIC)
+ 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_array_iterator___construct, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetExists, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetGet, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetSet, arginfo_array_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, offsetUnset, arginfo_array_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(Array, append, arginfo_array_append, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getArrayCopy, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, count, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, getFlags, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, setFlags, arginfo_array_setFlags, ZEND_ACC_PUBLIC)
- SPL_ME(Array, asort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, ksort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uasort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, uksort, arginfo_array_uXsort, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natsort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, natcasesort, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __unserialize, arginfo_array_unserialize, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __serialize, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, __debugInfo, arginfo_array_void, ZEND_ACC_PUBLIC)
+ 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_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, current, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, key, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, next, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, valid, arginfo_array_void, ZEND_ACC_PUBLIC)
- SPL_ME(Array, seek, arginfo_array_seek, ZEND_ACC_PUBLIC)
+ 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
};
--- /dev/null
+<?php
+
+class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable
+{
+ /** @param array|object $input */
+ public function __construct($input = [], int $flags = 0, string $iterator_class = ArrayIterator::class) {}
+
+ /**
+ * @param mixed $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param mixed $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function append($value) {}
+
+ /** @return array */
+ public function getArrayCopy() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function asort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function ksort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uasort($cmp_function) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uksort($cmp_function) {}
+
+ /** @return bool */
+ public function natsort() {}
+
+ /** @return bool */
+ public function natcasesort() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
+
+ /** @return Iterator */
+ public function getIterator() {}
+
+ /**
+ * @param array|object $input
+ * @return array|null
+ */
+ public function exchangeArray($input) {}
+
+ /** @return void */
+ public function setIteratorClass(string $iteratorClass) {}
+
+ /** @return string */
+ public function getIteratorClass() {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
+
+class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable
+{
+ /** @param array|object $array */
+ public function __construct($array = [], int $flags = 0) {}
+
+ /**
+ * @param mixed $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param mixed $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function append($value) {}
+
+ /** @return array */
+ public function getArrayCopy() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function asort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param int $sort_flags
+ * @return bool
+ */
+ public function ksort($sort_flags = SORT_REGULAR) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uasort($cmp_function) {}
+
+ /**
+ * @param callback $cmp_function
+ * @return bool
+ */
+ public function uksort($cmp_function) {}
+
+ /** @return bool */
+ public function natsort() {}
+
+ /** @return bool */
+ public function natcasesort() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return mixed */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return void */
+ public function seek(int $position) {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
+
+class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
+{
+ /** @return bool */
+ public function hasChildren() {}
+
+ /** @return RecursiveArrayIterator|null */
+ public function getChildren() {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject___construct, 0, 0, 0)
+ ZEND_ARG_INFO(0, input)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, iterator_class, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_offsetExists, 0, 0, 1)
+ ZEND_ARG_INFO(0, index)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_offsetGet arginfo_class_ArrayObject_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_offsetSet, 0, 0, 2)
+ ZEND_ARG_INFO(0, index)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_offsetUnset arginfo_class_ArrayObject_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_append, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_getArrayCopy, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_count arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject_getFlags arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_setFlags, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_asort, 0, 0, 0)
+ ZEND_ARG_INFO(0, sort_flags)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_ksort arginfo_class_ArrayObject_asort
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_uasort, 0, 0, 1)
+ ZEND_ARG_INFO(0, cmp_function)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_uksort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayObject_natsort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject_natcasesort arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, serialized, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayObject___serialize arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject___unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_getIterator arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_exchangeArray, 0, 0, 1)
+ ZEND_ARG_INFO(0, input)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject_setIteratorClass, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, iteratorClass, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayObject_getIteratorClass arginfo_class_ArrayObject_getArrayCopy
+
++#define arginfo_class_ArrayObject___debugInfo arginfo_class_ArrayObject_getArrayCopy
++
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayIterator___construct, 0, 0, 0)
+ ZEND_ARG_INFO(0, array)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_ArrayIterator_offsetExists arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_offsetGet arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_offsetSet arginfo_class_ArrayObject_offsetSet
+
+#define arginfo_class_ArrayIterator_offsetUnset arginfo_class_ArrayObject_offsetExists
+
+#define arginfo_class_ArrayIterator_append arginfo_class_ArrayObject_append
+
+#define arginfo_class_ArrayIterator_getArrayCopy arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_count arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_getFlags arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_setFlags arginfo_class_ArrayObject_setFlags
+
+#define arginfo_class_ArrayIterator_asort arginfo_class_ArrayObject_asort
+
+#define arginfo_class_ArrayIterator_ksort arginfo_class_ArrayObject_asort
+
+#define arginfo_class_ArrayIterator_uasort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayIterator_uksort arginfo_class_ArrayObject_uasort
+
+#define arginfo_class_ArrayIterator_natsort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_natcasesort arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_unserialize arginfo_class_ArrayObject_unserialize
+
+#define arginfo_class_ArrayIterator_serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator___serialize arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator___unserialize arginfo_class_ArrayObject___unserialize
+
+#define arginfo_class_ArrayIterator_rewind arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_current arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_key arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_next arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_ArrayIterator_valid arginfo_class_ArrayObject_getArrayCopy
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayIterator_seek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, position, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
++#define arginfo_class_ArrayIterator___debugInfo arginfo_class_ArrayObject_getArrayCopy
++
+#define arginfo_class_RecursiveArrayIterator_hasChildren arginfo_class_ArrayObject_getArrayCopy
+
+#define arginfo_class_RecursiveArrayIterator_getChildren arginfo_class_ArrayObject_getArrayCopy
}
/* }}} */
- static HashTable *spl_filesystem_object_get_debug_info(zend_object *object, int *is_temp) /* {{{ */
-static inline HashTable *spl_filesystem_object_get_debug_info(zval *object) /* {{{ */
++static inline HashTable *spl_filesystem_object_get_debug_info(zend_object *object) /* {{{ */
{
- spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(object);
+ spl_filesystem_object *intern = spl_filesystem_from_obj(object);
zval tmp;
HashTable *rv;
zend_string *pnstr;
}
/* }}} */
- RETURN_ARR(spl_filesystem_object_get_debug_info(getThis()));
+ /* {{{ proto void SplFileInfo::__debugInfo() */
+ SPL_METHOD(SplFileInfo, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
++ RETURN_ARR(spl_filesystem_object_get_debug_info(Z_OBJ_P(ZEND_THIS)));
+ } /* }}} */
+
/* {{{ proto SplFileInfo::_bad_state_ex(void) */
SPL_METHOD(SplFileInfo, _bad_state_ex)
{
/* 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_info___construct, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getPath, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getFilename, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getExtension, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getBasename, arginfo_optinalSuffix, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getPathname, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getPerms, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getInode, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getSize, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getOwner, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getGroup, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getATime, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getMTime, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getCTime, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getType, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isWritable, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isReadable, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isExecutable, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isFile, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isDir, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, isLink, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getLinkTarget, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
-#if HAVE_REALPATH || defined(ZTS)
- SPL_ME(SplFileInfo, getRealPath, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
-#endif
- SPL_ME(SplFileInfo, getFileInfo, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, getPathInfo, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, openFile, arginfo_info_openFile, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, setFileClass, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, setInfoClass, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, __debugInfo, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplFileInfo, _bad_state_ex, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
- SPL_MA(SplFileInfo, __toString, SplFileInfo, getPathname, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
+ 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
};
--- /dev/null
+<?php
+
+class SplFileInfo
+{
+ public function __construct(string $file_name) {}
+
+ /** @return string */
+ public function getPath() {}
+
+ /** @return string */
+ public function getFilename() {}
+
+ /** @return string */
+ public function getExtension() {}
+
+ /** @return string */
+ public function getBasename(string $suffix = "") {}
+
+ /** @return string|false */
+ public function getPathname() {}
+
+ /** @return int|false */
+ public function getPerms() {}
+
+ /** @return int|false */
+ public function getInode() {}
+
+ /** @return int|false */
+ public function getSize() {}
+
+ /** @return int|false */
+ public function getOwner() {}
+
+ /** @return int|false */
+ public function getGroup() {}
+
+ /** @return int|false */
+ public function getATime() {}
+
+ /** @return int|false */
+ public function getMTime() {}
+
+ /** @return int|false */
+ public function getCTime() {}
+
+ /** @return string|false */
+ public function getType() {}
+
+ /** @return bool */
+ public function isWritable() {}
+
+ /** @return bool */
+ public function isReadable() {}
+
+ /** @return bool */
+ public function isExecutable() {}
+
+ /** @return bool */
+ public function isFile() {}
+
+ /** @return bool */
+ public function isDir() {}
+
+ /** @return bool */
+ public function isLink() {}
+
+ /** @return string|false */
+ public function getLinkTarget() {}
+
+ /** @return string|false */
+ public function getRealPath() {}
+
+ /** @return SplFileInfo */
+ public function getFileInfo(string $class_name = UNKNOWN) {}
+
+ /** @return SplFileInfo|null */
+ public function getPathInfo(string $class_name = UNKNOWN) {}
+
+ /**
+ * @param resource $context
+ * @return SplFileObject
+ */
+ public function openFile(string $open_mode = 'r', bool $use_include_path = false, $context = UNKNOWN) {}
+
+ /** @return void */
+ public function setFileClass(string $class_name = SplFileObject::class) {}
+
+ /** @return void */
+ public function setInfoClass(string $class_name = SplFileInfo::class) {}
+
+ public function __toString(): string {}
+
++ /** @return array */
++ public function __debugInfo() {}
++
+ /** @return void */
+ final public function _bad_state_ex() {}
+}
+
+class DirectoryIterator extends SplFileInfo implements SeekableIterator
+{
+ public function __construct(string $path) {}
+
+ /** @return string */
+ public function getFilename() {}
+
+ /** @return string */
+ public function getExtension() {}
+
+ /** @return string */
+ public function getBasename(string $suffix = "") {}
+
+ /** @return bool */
+ public function isDot() {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return int|false */
+ public function key() {}
+
+ /** @return DirectoryIterator */
+ public function current() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return void */
+ public function seek(int $position) {}
+
+ public function __toString(): string {}
+}
+
+class FilesystemIterator extends DirectoryIterator
+{
+ public function __construct(string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return string */
+ public function key() {}
+
+ /** @return string|SplFileInfo|self */
+ public function current() {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+}
+
+class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator
+{
+ public function __construct(string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO) {}
+
+ /** @return bool */
+ public function hasChildren(bool $allow_links = false) {}
+
+ /** @return RecursiveDirectoryIterator */
+ public function getChildren() {}
+
+ /** @return string */
+ public function getSubPath() {}
+
+ /** @return string */
+ public function getSubPathname() {}
+}
+
+class GlobIterator extends FilesystemIterator implements Countable
+{
+ public function __construct(string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO) {}
+
+ /** @return int */
+ public function count() {}
+}
+
+class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator
+{
+ /** @param resource|null $context */
+ public function __construct(string $file_name, string $open_mode = 'r', bool $use_include_path = false, $context = null) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return bool */
+ public function eof() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return string|false */
+ public function fgets() {}
+
+ /** @return string|false */
+ public function fread(int $length) {}
+
+ /** @return array|false */
+ public function fgetcsv(string $delimiter = ",", string $enclosure = '"', $escape = "\\") {}
+
+ /** @return int|false */
+ public function fputcsv(array $fields, string $delimiter = ',', string $enclosure = '"', string $escape = "\\") {}
+
+ /** @return null|false */
+ public function setCsvControl(string $delimiter = ",", string $enclosure = "\"", string $escape = "\\") {}
+
+ /** @return array */
+ public function getCsvControl() {}
+
+ /** @return bool */
+ public function flock(int $operation, &$wouldblock = null) {}
+
+ /** @return bool */
+ public function fflush() {}
+
+ /** @return int|false */
+ public function ftell() {}
+
+ /** @return int */
+ public function fseek(int $offset, int $whence = SEEK_SET) {}
+
+ /** @return string|false */
+ public function fgetc() {}
+
+ /** @return int */
+ public function fpassthru() {}
+
+ /**
+ * @param string $format
+ * @return array|int
+ */
+ public function fscanf(string $format, &...$params) {}
+
+ /** @return int|false */
+ public function fwrite(string $str, int $length = 0) {}
+
+ /** @return array */
+ public function fstat() {}
+
+ /** @return bool */
+ public function ftruncate(int $size) {}
+
+ /** @return string|array|false */
+ public function current() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setMaxLineLen(int $max_len) {}
+
+ /** @return int */
+ public function getMaxLineLen() {}
+
+ /** @return bool */
+ public function hasChildren() {}
+
+ /** @return null */
+ public function getChildren() {}
+
+ /** @return void */
+ public function seek(int $line_pos) {}
+
+ /** @return string|false */
+ public function getCurrentLine() {}
+
+ public function __toString(): string {}
+}
+
+class SplTempFileObject extends SplFileObject
+{
+ public function __construct(int $max_memory = 2 * 1024 * 1024) {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, file_name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo_getPath, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileInfo_getFilename arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getExtension arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo_getBasename, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, suffix, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileInfo_getPathname arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getPerms arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getInode arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getSize arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getOwner arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getGroup arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getATime arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getMTime arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getCTime arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getType arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isWritable arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isReadable arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isExecutable arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isFile arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isDir arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_isLink arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getLinkTarget arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileInfo_getRealPath arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo_getFileInfo, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, class_name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileInfo_getPathInfo arginfo_class_SplFileInfo_getFileInfo
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo_openFile, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, open_mode, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, use_include_path, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, context)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileInfo_setFileClass arginfo_class_SplFileInfo_getFileInfo
+
+#define arginfo_class_SplFileInfo_setInfoClass arginfo_class_SplFileInfo_getFileInfo
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_SplFileInfo___toString, 0, 0, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
++#define arginfo_class_SplFileInfo___debugInfo arginfo_class_SplFileInfo_getPath
++
+#define arginfo_class_SplFileInfo__bad_state_ex arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DirectoryIterator___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_DirectoryIterator_getFilename arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_getExtension arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_getBasename arginfo_class_SplFileInfo_getBasename
+
+#define arginfo_class_DirectoryIterator_isDot arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_rewind arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_valid arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_key arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_current arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_DirectoryIterator_next arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DirectoryIterator_seek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, position, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_DirectoryIterator___toString arginfo_class_SplFileInfo___toString
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_FilesystemIterator___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+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
+
+#define arginfo_class_FilesystemIterator_getFlags arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_FilesystemIterator_setFlags, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RecursiveDirectoryIterator___construct arginfo_class_FilesystemIterator___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveDirectoryIterator_hasChildren, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, allow_links, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RecursiveDirectoryIterator_getChildren arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_RecursiveDirectoryIterator_getSubPath arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_RecursiveDirectoryIterator_getSubPathname arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_GlobIterator___construct arginfo_class_FilesystemIterator___construct
+
+#define arginfo_class_GlobIterator_count arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, file_name, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, open_mode, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, use_include_path, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, context)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_rewind arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_eof arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_valid arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_fgets arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fread, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fgetcsv, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, delimiter, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, enclosure, IS_STRING, 0)
+ ZEND_ARG_INFO(0, escape)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fputcsv, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, fields, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, delimiter, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, enclosure, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, escape, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_setCsvControl, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, delimiter, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, enclosure, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, escape, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_getCsvControl arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_flock, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, operation, IS_LONG, 0)
+ ZEND_ARG_INFO(1, wouldblock)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_fflush arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_ftell arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fseek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, whence, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_fgetc arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_fpassthru arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fscanf, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_INFO(1, params)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fwrite, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_fstat arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_ftruncate, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_current arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_key arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_next arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_setFlags arginfo_class_FilesystemIterator_setFlags
+
+#define arginfo_class_SplFileObject_getFlags arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_setMaxLineLen, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, max_len, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_getMaxLineLen arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_hasChildren arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject_getChildren arginfo_class_SplFileInfo_getPath
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_seek, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, line_pos, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplFileObject_getCurrentLine arginfo_class_SplFileInfo_getPath
+
+#define arginfo_class_SplFileObject___toString arginfo_class_SplFileInfo___toString
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplTempFileObject___construct, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, max_memory, IS_LONG, 0)
+ZEND_END_ARG_INFO()
}
/* }}} */
- static HashTable* spl_dllist_object_get_debug_info(zend_object *obj, int *is_temp) /* {{{{ */
-static inline HashTable* spl_dllist_object_get_debug_info(zval *obj) /* {{{{ */
++static inline HashTable* spl_dllist_object_get_debug_info(zend_object *obj) /* {{{{ */
{
- spl_dllist_object *intern = Z_SPLDLLIST_P(obj);
+ spl_dllist_object *intern = spl_dllist_from_obj(obj);
spl_ptr_llist_element *current = intern->llist->head, *next;
zval tmp, dllist_array;
zend_string *pnstr;
}
} /* }}} */
- RETURN_ARR(spl_dllist_object_get_debug_info(getThis()));
+ /* {{{ proto void SplDoublyLinkedList::__debugInfo() */
+ SPL_METHOD(SplDoublyLinkedList, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
++ RETURN_ARR(spl_dllist_object_get_debug_info(Z_OBJ_P(ZEND_THIS)));
+ } /* }}} */
+
/* {{{ iterator handler table */
static const zend_object_iterator_funcs spl_dllist_it_funcs = {
spl_dllist_it_dtor,
};
static const zend_function_entry spl_funcs_SplDoublyLinkedList[] = {
- SPL_ME(SplDoublyLinkedList, pop, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, shift, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, push, arginfo_dllist_push, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, unshift, arginfo_dllist_push, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, top, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, bottom, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, isEmpty, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, setIteratorMode, arginfo_dllist_setiteratormode, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, getIteratorMode, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, __debugInfo, arginfo_dllist_void, ZEND_ACC_PUBLIC)
+ 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_dllist_void, ZEND_ACC_PUBLIC)
+ SPL_ME(SplDoublyLinkedList, count, arginfo_class_SplDoublyLinkedList_count, ZEND_ACC_PUBLIC)
/* ArrayAccess */
- SPL_ME(SplDoublyLinkedList, offsetExists, arginfo_dllist_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, offsetGet, arginfo_dllist_offsetGet, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, offsetSet, arginfo_dllist_offsetSet, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, offsetUnset, arginfo_dllist_offsetGet, ZEND_ACC_PUBLIC)
+ 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_dllist_offsetSet, ZEND_ACC_PUBLIC)
+ SPL_ME(SplDoublyLinkedList, add, arginfo_class_SplDoublyLinkedList_add, ZEND_ACC_PUBLIC)
/* Iterator */
- SPL_ME(SplDoublyLinkedList, rewind, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, current, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, key, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, next, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, prev, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, valid, arginfo_dllist_void, ZEND_ACC_PUBLIC)
+ 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_dllist_serialized, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, serialize, arginfo_dllist_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, __unserialize, arginfo_dllist_serialized, ZEND_ACC_PUBLIC)
- SPL_ME(SplDoublyLinkedList, __serialize, arginfo_dllist_void, 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)
+ 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
};
/* }}} */
--- /dev/null
+<?php
+
+class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable
+{
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function add($index, $value) {}
+
+ /** @return mixed */
+ public function pop() {}
+
+ /** @return mixed */
+ public function shift() {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function push($value) {}
+
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function unshift($value) {}
+
+ /** @return mixed */
+ public function top() {}
+
+ /** @return mixed */
+ public function bottom() {}
+
++ /** @return array */
++ public function __debugInfo() {}
++
+ /** @return int */
+ public function count() {}
+
+ /** @return bool */
+ public function isEmpty() {}
+
+ /** @return int */
+ public function setIteratorMode(int $mode) {}
+
+ /** @return int */
+ public function getIteratorMode() {}
+
+ /**
+ * @param int $index
+ * @return bool
+ */
+ public function offsetExists($index) {}
+
+ /**
+ * @param mixed $index
+ * @return mixed
+ */
+ public function offsetGet($index) {}
+
+ /**
+ * @param mixed $index
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($index, $value) {}
+
+ /**
+ * @param mixed $index
+ * @return void
+ */
+ public function offsetUnset($index) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return void */
+ public function prev() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
+}
+
+class SplQueue extends SplDoublyLinkedList
+{
+ /**
+ * @param mixed $value
+ * @return void
+ */
+ public function enqueue($value) {}
+
+ /** @return mixed */
+ public function dequeue() {}
+}
+
+class SplStack extends SplDoublyLinkedList
+{
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_add, 0, 0, 2)
+ ZEND_ARG_INFO(0, index)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_pop, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplDoublyLinkedList_shift arginfo_class_SplDoublyLinkedList_pop
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_push, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplDoublyLinkedList_unshift arginfo_class_SplDoublyLinkedList_push
+
+#define arginfo_class_SplDoublyLinkedList_top arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_bottom arginfo_class_SplDoublyLinkedList_pop
+
++#define arginfo_class_SplDoublyLinkedList___debugInfo arginfo_class_SplDoublyLinkedList_pop
++
+#define arginfo_class_SplDoublyLinkedList_count arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_isEmpty arginfo_class_SplDoublyLinkedList_pop
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_setIteratorMode, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplDoublyLinkedList_getIteratorMode arginfo_class_SplDoublyLinkedList_pop
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_offsetExists, 0, 0, 1)
+ ZEND_ARG_INFO(0, index)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplDoublyLinkedList_offsetGet arginfo_class_SplDoublyLinkedList_offsetExists
+
+#define arginfo_class_SplDoublyLinkedList_offsetSet arginfo_class_SplDoublyLinkedList_add
+
+#define arginfo_class_SplDoublyLinkedList_offsetUnset arginfo_class_SplDoublyLinkedList_offsetExists
+
+#define arginfo_class_SplDoublyLinkedList_rewind arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_current arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_key arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_prev arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_next arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList_valid arginfo_class_SplDoublyLinkedList_pop
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, serialized, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplDoublyLinkedList_serialize arginfo_class_SplDoublyLinkedList_pop
+
+#define arginfo_class_SplDoublyLinkedList___serialize arginfo_class_SplDoublyLinkedList_pop
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList___unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplQueue_enqueue arginfo_class_SplDoublyLinkedList_push
+
+#define arginfo_class_SplQueue_dequeue arginfo_class_SplDoublyLinkedList_pop
}
/* }}} */
- static HashTable* spl_heap_object_get_debug_info_helper(zend_class_entry *ce, zend_object *obj, int *is_temp) { /* {{{ */
-static inline HashTable* spl_heap_object_get_debug_info(zend_class_entry *ce, zval *obj) { /* {{{ */
- spl_heap_object *intern = Z_SPLHEAP_P(obj);
++static inline HashTable* spl_heap_object_get_debug_info(zend_class_entry *ce, zend_object *obj) { /* {{{ */
+ spl_heap_object *intern = spl_heap_from_obj(obj);
zval tmp, heap_array;
zend_string *pnstr;
HashTable *debug_info;
}
/* }}} */
- RETURN_ARR(spl_heap_object_get_debug_info(spl_ce_SplHeap, getThis()));
+ /* {{{ proto void SplHeap::__debugInfo() */
+ SPL_METHOD(SplHeap, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
- RETURN_ARR(spl_heap_object_get_debug_info(spl_ce_SplPriorityQueue, getThis()));
++ RETURN_ARR(spl_heap_object_get_debug_info(spl_ce_SplHeap, Z_OBJ_P(ZEND_THIS)));
+ } /* }}} */
+
+ /* {{{ proto void SplPriorityQueue::__debugInfo() */
+ SPL_METHOD(SplPriorityQueue, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
++ RETURN_ARR(spl_heap_object_get_debug_info(spl_ce_SplPriorityQueue, Z_OBJ_P(ZEND_THIS)));
+ } /* }}} */
+
/* iterator handler table */
static const zend_object_iterator_funcs spl_heap_it_funcs = {
spl_heap_it_dtor,
};
static const zend_function_entry spl_funcs_SplPriorityQueue[] = {
- SPL_ME(SplPriorityQueue, compare, arginfo_heap_compare, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, insert, arginfo_pqueue_insert, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, setExtractFlags, arginfo_pqueue_setflags, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, getExtractFlags, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, top, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, extract, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, count, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, isEmpty, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, rewind, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, current, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, key, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, next, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, valid, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, recoverFromCorruption, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, isCorrupted, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplPriorityQueue, __debugInfo, arginfo_splheap_void, ZEND_ACC_PUBLIC)
+ 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_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, insert, arginfo_heap_insert, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, top, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, count, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, isEmpty, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, rewind, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, current, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, key, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, next, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, valid, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, recoverFromCorruption, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, isCorrupted, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- SPL_ME(SplHeap, __debugInfo, arginfo_splheap_void, ZEND_ACC_PUBLIC)
- ZEND_FENTRY(compare, NULL, NULL, ZEND_ACC_PROTECTED|ZEND_ACC_ABSTRACT)
+ 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
};
/* }}} */
--- /dev/null
+<?php
+
+class SplPriorityQueue implements Iterator, Countable
+{
+ /**
+ * @param mixed $priority1
+ * @param mixed $priority2
+ * @return int
+ */
+ public function compare($priority1, $priority2) {}
+
+ /**
+ * @param mixed $value
+ * @param mixed $priority
+ * @return bool
+ */
+ public function insert($value, $priority) {}
+
+ /** @return int */
+ public function setExtractFlags(int $flags) {}
+
+ /** @return mixed */
+ public function top() {}
+
+ /** @return mixed */
+ public function extract() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return bool */
+ public function isEmpty() {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return bool */
+ public function recoverFromCorruption() {}
+
+ /** @return bool */
+ public function isCorrupted() {}
+
+ /** @return int */
+ public function getExtractFlags() {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
+
+abstract class SplHeap implements Iterator, Countable
+{
+ /** @return mixed */
+ public function extract() {}
+
+ /**
+ * @param mixed $value
+ * @return bool
+ */
+ public function insert($value) {}
+
+ /** @return mixed */
+ public function top() {}
+
+ /** @return int */
+ public function count() {}
+
+ /** @return bool */
+ public function isEmpty() {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return mixed */
+ public function current() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return bool */
+ public function recoverFromCorruption() {}
+
+ /**
+ * @param mixed $value1
+ * @param mixed $value2
+ * @return int
+ */
+ abstract protected function compare($value1, $value2);
+
+ /** @return bool */
+ public function isCorrupted() {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
+
+class SplMinHeap extends SplHeap
+{
+ /**
+ * @param mixed $value1
+ * @param mixed $value2
+ * @return int
+ */
+ protected function compare($value1, $value2) {}
+}
+
+class SplMaxHeap extends SplHeap
+{
+ /**
+ * @param mixed $value1
+ * @param mixed $value2
+ * @return int
+ */
+ protected function compare($value1, $value2) {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplPriorityQueue_compare, 0, 0, 2)
+ ZEND_ARG_INFO(0, priority1)
+ ZEND_ARG_INFO(0, priority2)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplPriorityQueue_insert, 0, 0, 2)
+ ZEND_ARG_INFO(0, value)
+ ZEND_ARG_INFO(0, priority)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplPriorityQueue_setExtractFlags, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplPriorityQueue_top, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplPriorityQueue_extract arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_count arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_isEmpty arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_rewind arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_current arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_key arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_next arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_valid arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_recoverFromCorruption arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_isCorrupted arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplPriorityQueue_getExtractFlags arginfo_class_SplPriorityQueue_top
+
++#define arginfo_class_SplPriorityQueue___debugInfo arginfo_class_SplPriorityQueue_top
++
+#define arginfo_class_SplHeap_extract arginfo_class_SplPriorityQueue_top
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplHeap_insert, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplHeap_top arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_count arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_isEmpty arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_rewind arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_current arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_key arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_next arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_valid arginfo_class_SplPriorityQueue_top
+
+#define arginfo_class_SplHeap_recoverFromCorruption arginfo_class_SplPriorityQueue_top
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplHeap_compare, 0, 0, 2)
+ ZEND_ARG_INFO(0, value1)
+ ZEND_ARG_INFO(0, value2)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplHeap_isCorrupted arginfo_class_SplPriorityQueue_top
+
++#define arginfo_class_SplHeap___debugInfo arginfo_class_SplPriorityQueue_top
++
+#define arginfo_class_SplMinHeap_compare arginfo_class_SplHeap_compare
+
+#define arginfo_class_SplMaxHeap_compare arginfo_class_SplHeap_compare
}
/* }}} */
- static HashTable* spl_object_storage_debug_info(zend_object *obj, int *is_temp) /* {{{ */
-static inline HashTable* spl_object_storage_debug_info(zval *obj) /* {{{ */
++static inline HashTable* spl_object_storage_debug_info(zend_object *obj) /* {{{ */
{
- spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(obj);
+ spl_SplObjectStorage *intern = spl_object_storage_from_obj(obj);
spl_SplObjectStorageElement *element;
HashTable *props;
zval tmp, storage;
zend_string *zname;
HashTable *debug_info;
- *is_temp = 1;
-
- props = Z_OBJPROP_P(obj);
+ props = obj->handlers->get_properties(obj);
debug_info = zend_new_array(zend_hash_num_elements(props) + 1);
zend_hash_copy(debug_info, props, (copy_ctor_func_t)zval_add_ref);
object_properties_load(&intern->std, Z_ARRVAL_P(members_zv));
}
- RETURN_ARR(spl_object_storage_debug_info(getThis()));
+ /* {{{ proto array SplObjectStorage::__debugInfo() */
+ SPL_METHOD(SplObjectStorage, __debugInfo)
+ {
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
-ZEND_BEGIN_ARG_INFO(arginfo_Object, 0)
- ZEND_ARG_INFO(0, object)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_attach, 0, 0, 1)
- ZEND_ARG_INFO(0, object)
- ZEND_ARG_INFO(0, data)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_Serialized, 0)
- ZEND_ARG_INFO(0, serialized)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_setInfo, 0)
- ZEND_ARG_INFO(0, info)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO(arginfo_getHash, 0)
- ZEND_ARG_INFO(0, object)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_offsetGet, 0, 0, 1)
- ZEND_ARG_INFO(0, object)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_splobject_void, 0)
-ZEND_END_ARG_INFO()
-
++ RETURN_ARR(spl_object_storage_debug_info(Z_OBJ_P(ZEND_THIS)));
+ }
+ /* }}} */
+
static const zend_function_entry spl_funcs_SplObjectStorage[] = {
- SPL_ME(SplObjectStorage, attach, arginfo_attach, 0)
- SPL_ME(SplObjectStorage, detach, arginfo_Object, 0)
- SPL_ME(SplObjectStorage, contains, arginfo_Object, 0)
- SPL_ME(SplObjectStorage, addAll, arginfo_Object, 0)
- SPL_ME(SplObjectStorage, removeAll, arginfo_Object, 0)
- SPL_ME(SplObjectStorage, removeAllExcept, arginfo_Object, 0)
- SPL_ME(SplObjectStorage, getInfo, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, setInfo, arginfo_setInfo, 0)
- SPL_ME(SplObjectStorage, getHash, arginfo_getHash, 0)
- SPL_ME(SplObjectStorage, __debugInfo, arginfo_splobject_void,0)
+ 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_splobject_void,0)
+ SPL_ME(SplObjectStorage, count, arginfo_class_SplObjectStorage_count,0)
/* Iterator */
- SPL_ME(SplObjectStorage, rewind, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, valid, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, key, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, current, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, next, arginfo_splobject_void,0)
+ 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_Serialized, 0)
- SPL_ME(SplObjectStorage, serialize, arginfo_splobject_void,0)
- SPL_ME(SplObjectStorage, __unserialize, arginfo_Serialized, 0)
- SPL_ME(SplObjectStorage, __serialize, arginfo_splobject_void,0)
+ 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_offsetGet, 0)
- SPL_MA(SplObjectStorage, offsetSet, SplObjectStorage, attach, arginfo_attach, 0)
- SPL_MA(SplObjectStorage, offsetUnset, SplObjectStorage, detach, arginfo_offsetGet, 0)
- SPL_ME(SplObjectStorage, offsetGet, arginfo_offsetGet, 0)
+ 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
};
}
/* }}} */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_MultipleIterator_attachIterator, 0, 0, 1)
- ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
- ZEND_ARG_INFO(0, infos)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_MultipleIterator_detachIterator, 0, 0, 1)
- ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_MultipleIterator_containsIterator, 0, 0, 1)
- ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
-ZEND_END_ARG_INFO();
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_MultipleIterator_setflags, 0, 0, 1)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO();
-
static const zend_function_entry spl_funcs_MultipleIterator[] = {
- SPL_ME(MultipleIterator, __construct, arginfo_MultipleIterator_setflags, 0)
- SPL_ME(MultipleIterator, getFlags, arginfo_splobject_void, 0)
- SPL_ME(MultipleIterator, setFlags, arginfo_MultipleIterator_setflags, 0)
- SPL_ME(MultipleIterator, attachIterator, arginfo_MultipleIterator_attachIterator, 0)
- SPL_MA(MultipleIterator, detachIterator, SplObjectStorage, detach, arginfo_MultipleIterator_detachIterator, 0)
- SPL_MA(MultipleIterator, containsIterator, SplObjectStorage, contains, arginfo_MultipleIterator_containsIterator, 0)
- SPL_MA(MultipleIterator, countIterators, SplObjectStorage, count, arginfo_splobject_void, 0)
- SPL_MA(MultipleIterator, __debugInfo, SplObjectStorage, __debugInfo, arginfo_splobject_void, 0)
+ 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_splobject_void, 0)
- SPL_ME(MultipleIterator, valid, arginfo_splobject_void, 0)
- SPL_ME(MultipleIterator, key, arginfo_splobject_void, 0)
- SPL_ME(MultipleIterator, current, arginfo_splobject_void, 0)
- SPL_ME(MultipleIterator, next, arginfo_splobject_void, 0)
+ 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
};
memcpy(&spl_handler_SplObjectStorage, &std_object_handlers, sizeof(zend_object_handlers));
spl_handler_SplObjectStorage.offset = XtOffsetOf(spl_SplObjectStorage, std);
- spl_handler_SplObjectStorage.get_debug_info = spl_object_storage_debug_info;
- spl_handler_SplObjectStorage.compare_objects = spl_object_storage_compare_objects;
+ spl_handler_SplObjectStorage.compare = spl_object_storage_compare_objects;
spl_handler_SplObjectStorage.clone_obj = spl_object_storage_clone;
spl_handler_SplObjectStorage.get_gc = spl_object_storage_get_gc;
spl_handler_SplObjectStorage.dtor_obj = zend_objects_destroy_object;
--- /dev/null
+<?php
+
+interface SplObserver
+{
+ /** @return void */
+ public function update(SplSubject $subject);
+}
+
+interface SplSubject
+{
+ /** @return void */
+ public function attach(SplObserver $observer);
+
+ /** @return void */
+ public function detach(SplObserver $observer);
+
+ /** @return void */
+ public function notify();
+}
+
+class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess
+{
+ /**
+ * @param mixed $info
+ * @return void
+ */
+ public function attach(object $object, $info = null) {}
+
+ /** @return void */
+ public function detach(object $object) {}
+
+ /** @return bool */
+ public function contains(object $object) {}
+
+ /** @return int */
+ public function addAll(SplObjectStorage $storage) {}
+
+ /** @return void */
+ public function removeAll(SplObjectStorage $storage) {}
+
+ /** @return void */
+ public function removeAllExcept(SplObjectStorage $storage) {}
+
+ /** @return mixed */
+ public function getInfo() {}
+
+ /**
+ * @param mixed $info
+ * @return void
+ */
+ public function setInfo($info) {}
+
+ /** @return int */
+ public function count(int $mode = COUNT_NORMAL) {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return int */
+ public function key() {}
+
+ /** @return object */
+ public function current() {}
+
+ /** @return void */
+ public function next() {}
+
+ /** @return void */
+ public function unserialize(string $serialized) {}
+
+ /** @return string */
+ public function serialize() {}
+
+ /**
+ * @param object $object
+ * @return bool
+ */
+ public function offsetExists($object) {}
+
+ /**
+ * @param object $object
+ * @return mixed
+ */
+ public function offsetGet($object) {}
+
+ /**
+ * @param object $object
+ * @param mixed $info
+ * @return void
+ */
+ public function offsetSet($object, $info = null) {}
+
+ /**
+ * @param object $object
+ * @return void
+ */
+ public function offsetUnset($object) {}
+
+ /** @return string */
+ public function getHash(object $object) {}
+
+ /** @return array */
+ public function __serialize() {}
+
+ /** @return void */
+ public function __unserialize(array $data) {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
+
+class MultipleIterator implements Iterator
+{
+ public function __construct(int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC) {}
+
+ /** @return int */
+ public function getFlags() {}
+
+ /** @return void */
+ public function setFlags(int $flags) {}
+
+ /**
+ * @param Iterator $iterator
+ * @param int|string|null $info
+ * @return void
+ */
+ public function attachIterator(Iterator $iterator, $info = null) {}
+
+ /** @return void */
+ public function detachIterator(Iterator $iterator) {}
+
+ /** @return bool */
+ public function containsIterator(Iterator $iterator) {}
+
+ /** @return int */
+ public function countIterators() {}
+
+ /** @return void */
+ public function rewind() {}
+
+ /** @return bool */
+ public function valid() {}
+
+ /** @return array */
+ public function key() {}
+
+ /** @return array */
+ public function current() {}
+
+ /** @return void */
+ public function next() {}
++
++ /** @return array */
++ public function __debugInfo() {}
+}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObserver_update, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, subject, SplSubject, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplSubject_attach, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, observer, SplObserver, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplSubject_detach arginfo_class_SplSubject_attach
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplSubject_notify, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_attach, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
+ ZEND_ARG_INFO(0, info)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_detach, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_contains arginfo_class_SplObjectStorage_detach
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_addAll, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, storage, SplObjectStorage, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_removeAll arginfo_class_SplObjectStorage_addAll
+
+#define arginfo_class_SplObjectStorage_removeAllExcept arginfo_class_SplObjectStorage_addAll
+
+#define arginfo_class_SplObjectStorage_getInfo arginfo_class_SplSubject_notify
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_setInfo, 0, 0, 1)
+ ZEND_ARG_INFO(0, info)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_count, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_rewind arginfo_class_SplSubject_notify
+
+#define arginfo_class_SplObjectStorage_valid arginfo_class_SplSubject_notify
+
+#define arginfo_class_SplObjectStorage_key arginfo_class_SplSubject_notify
+
+#define arginfo_class_SplObjectStorage_current arginfo_class_SplSubject_notify
+
+#define arginfo_class_SplObjectStorage_next arginfo_class_SplSubject_notify
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, serialized, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_serialize arginfo_class_SplSubject_notify
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_offsetExists, 0, 0, 1)
+ ZEND_ARG_INFO(0, object)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_offsetGet arginfo_class_SplObjectStorage_offsetExists
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage_offsetSet, 0, 0, 1)
+ ZEND_ARG_INFO(0, object)
+ ZEND_ARG_INFO(0, info)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SplObjectStorage_offsetUnset arginfo_class_SplObjectStorage_offsetExists
+
+#define arginfo_class_SplObjectStorage_getHash arginfo_class_SplObjectStorage_detach
+
+#define arginfo_class_SplObjectStorage___serialize arginfo_class_SplSubject_notify
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObjectStorage___unserialize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
++#define arginfo_class_SplObjectStorage___debugInfo arginfo_class_SplSubject_notify
++
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MultipleIterator___construct, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_MultipleIterator_getFlags arginfo_class_SplSubject_notify
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MultipleIterator_setFlags, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MultipleIterator_attachIterator, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
+ ZEND_ARG_INFO(0, info)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MultipleIterator_detachIterator, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_MultipleIterator_containsIterator arginfo_class_MultipleIterator_detachIterator
+
+#define arginfo_class_MultipleIterator_countIterators arginfo_class_SplSubject_notify
+
+#define arginfo_class_MultipleIterator_rewind arginfo_class_SplSubject_notify
+
+#define arginfo_class_MultipleIterator_valid arginfo_class_SplSubject_notify
+
+#define arginfo_class_MultipleIterator_key arginfo_class_SplSubject_notify
+
+#define arginfo_class_MultipleIterator_current arginfo_class_SplSubject_notify
+
+#define arginfo_class_MultipleIterator_next arginfo_class_SplSubject_notify
++
++#define arginfo_class_MultipleIterator___debugInfo arginfo_class_SplSubject_notify