Skip to content

Commit f3d6203

Browse files
committed
Use a dedicated method for MultipleIterator::countIterators()
This method has a different signature from SplObjectStorage::count(), so don't share implementations.
1 parent f0bf3d4 commit f3d6203

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

ext/spl/spl_observer.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,17 @@ PHP_METHOD(MultipleIterator, containsIterator)
993993
RETURN_BOOL(spl_object_storage_contains(intern, iterator));
994994
} /* }}} */
995995

996+
PHP_METHOD(MultipleIterator, countIterators)
997+
{
998+
spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
999+
1000+
if (zend_parse_parameters_none() == FAILURE) {
1001+
RETURN_THROWS();
1002+
}
1003+
1004+
RETURN_LONG(zend_hash_num_elements(&intern->storage));
1005+
}
1006+
9961007
/* {{{ Rewind all attached iterator instances */
9971008
PHP_METHOD(MultipleIterator, rewind)
9981009
{

ext/spl/spl_observer.stub.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,7 @@ public function detachIterator(Iterator $iterator) {}
140140
/** @return bool */
141141
public function containsIterator(Iterator $iterator) {}
142142

143-
/**
144-
* @return int
145-
* @alias SplObjectStorage::count
146-
*/
143+
/** @return int */
147144
public function countIterators() {}
148145

149146
/** @return void */

ext/spl/spl_observer_arginfo.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash: 22aaae107ec0c1c81a3f7135ffd7d22507437c57 */
2+
* Stub hash: 4a31f2cc1b0c874f1256aef60afbd285dbe6c078 */
33

44
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObserver_update, 0, 0, 1)
55
ZEND_ARG_OBJ_INFO(0, subject, SplSubject, 0)
@@ -145,6 +145,7 @@ ZEND_METHOD(MultipleIterator, setFlags);
145145
ZEND_METHOD(MultipleIterator, attachIterator);
146146
ZEND_METHOD(MultipleIterator, detachIterator);
147147
ZEND_METHOD(MultipleIterator, containsIterator);
148+
ZEND_METHOD(MultipleIterator, countIterators);
148149
ZEND_METHOD(MultipleIterator, rewind);
149150
ZEND_METHOD(MultipleIterator, valid);
150151
ZEND_METHOD(MultipleIterator, key);
@@ -202,7 +203,7 @@ static const zend_function_entry class_MultipleIterator_methods[] = {
202203
ZEND_ME(MultipleIterator, attachIterator, arginfo_class_MultipleIterator_attachIterator, ZEND_ACC_PUBLIC)
203204
ZEND_ME(MultipleIterator, detachIterator, arginfo_class_MultipleIterator_detachIterator, ZEND_ACC_PUBLIC)
204205
ZEND_ME(MultipleIterator, containsIterator, arginfo_class_MultipleIterator_containsIterator, ZEND_ACC_PUBLIC)
205-
ZEND_MALIAS(SplObjectStorage, countIterators, count, arginfo_class_MultipleIterator_countIterators, ZEND_ACC_PUBLIC)
206+
ZEND_ME(MultipleIterator, countIterators, arginfo_class_MultipleIterator_countIterators, ZEND_ACC_PUBLIC)
206207
ZEND_ME(MultipleIterator, rewind, arginfo_class_MultipleIterator_rewind, ZEND_ACC_PUBLIC)
207208
ZEND_ME(MultipleIterator, valid, arginfo_class_MultipleIterator_valid, ZEND_ACC_PUBLIC)
208209
ZEND_ME(MultipleIterator, key, arginfo_class_MultipleIterator_key, ZEND_ACC_PUBLIC)

0 commit comments

Comments
 (0)