From: Christoph M. Becker Date: Mon, 6 Apr 2020 10:03:01 +0000 (+0200) Subject: Merge branch 'PHP-7.4' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98097138442181ba0435934d5cf4f6d257acaac6;p=php Merge branch 'PHP-7.4' * PHP-7.4: Fix #69264: __debugInfo() ignored while extending SPL classes --- 98097138442181ba0435934d5cf4f6d257acaac6 diff --cc ext/spl/spl_array.c index 434dfc634f,3803055d30..cbc40eafe8 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@@ -824,7 -822,7 +824,7 @@@ static HashTable *spl_array_get_propert 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; @@@ -1893,63 -1881,128 +1891,75 @@@ SPL_METHOD(Array, __unserialize } /* }}} */ + /* {{{ proto void Array::__debugInfo() */ + SPL_METHOD(Array, __debugInfo) + { + if (zend_parse_parameters_none() == FAILURE) { + return; + } + - RETURN_ARR(spl_array_get_debug_info(getThis())); ++ RETURN_ARR(spl_array_get_debug_info(Z_OBJ_P(ZEND_THIS))); + } /* }}} */ + -/* {{{ 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() - 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 }; diff --cc ext/spl/spl_array.stub.php index aa9996c193,0000000000..a68a482edd mode 100755,000000..100755 --- a/ext/spl/spl_array.stub.php +++ b/ext/spl/spl_array.stub.php @@@ -1,225 -1,0 +1,231 @@@ +llist->head, *next; zval tmp, dllist_array; zend_string *pnstr; @@@ -1331,6 -1343,16 +1330,16 @@@ SPL_METHOD(SplDoublyLinkedList, add } } /* }}} */ + /* {{{ proto void SplDoublyLinkedList::__debugInfo() */ + SPL_METHOD(SplDoublyLinkedList, __debugInfo) + { + if (zend_parse_parameters_none() == FAILURE) { + return; + } + - RETURN_ARR(spl_dllist_object_get_debug_info(getThis())); ++ 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, @@@ -1378,37 -1425,38 +1387,38 @@@ static const zend_function_entry spl_fu }; 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 }; /* }}} */ diff --cc ext/spl/spl_dllist.stub.php index c4101cc75c,0000000000..0cb91d8ddf mode 100755,000000..100755 --- a/ext/spl/spl_dllist.stub.php +++ b/ext/spl/spl_dllist.stub.php @@@ -1,118 -1,0 +1,121 @@@ +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); @@@ -923,34 -943,74 +921,46 @@@ SPL_METHOD(SplObjectStorage, __unserial object_properties_load(&intern->std, Z_ARRVAL_P(members_zv)); } + /* {{{ proto array SplObjectStorage::__debugInfo() */ + SPL_METHOD(SplObjectStorage, __debugInfo) + { + if (zend_parse_parameters_none() == FAILURE) { + return; + } + - RETURN_ARR(spl_object_storage_debug_info(getThis())); ++ RETURN_ARR(spl_object_storage_debug_info(Z_OBJ_P(ZEND_THIS))); + } + /* }}} */ + -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() - 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 }; @@@ -1258,20 -1289,38 +1268,21 @@@ SPL_METHOD(MultipleIterator, key } /* }}} */ -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 }; @@@ -1285,8 -1334,7 +1296,7 @@@ PHP_MINIT_FUNCTION(spl_observer 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; diff --cc ext/spl/spl_observer.stub.php index bba3860d23,0000000000..3c717c0770 mode 100644,000000..100644 --- a/ext/spl/spl_observer.stub.php +++ b/ext/spl/spl_observer.stub.php @@@ -1,152 -1,0 +1,158 @@@ +