Add zend_hash_get_current_pos_ex() (#14770)

This commit is contained in:
Niels Dossche 2024-07-02 10:11:41 -07:00 committed by GitHub
parent b229f189ee
commit c3a5b98771
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 0 deletions

View File

@ -92,6 +92,8 @@ PHP 8.4 INTERNALS UPGRADE NOTES
* zend_is_true now returns bool rather than int. Note that on PHP 8 this has
always returned 0 or 1, so conversion should be trivial.
* Added zend_hash_get_current_pos_ex() variant of zend_hash_get_current_pos().
========================
2. Build system changes
========================

View File

@ -514,6 +514,11 @@ ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *h
return _zend_hash_get_current_pos(ht);
}
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos_ex(const HashTable *ht, HashPosition pos)
{
return _zend_hash_get_valid_pos(ht, pos);
}
static void zend_hash_remove_iterator_copies(uint32_t idx) {
HashTableIterator *iterators = EG(ht_iterators);

View File

@ -245,6 +245,7 @@ static zend_always_inline bool zend_hash_index_exists(const HashTable *ht, zend_
}
/* traversing */
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos_ex(const HashTable *ht, HashPosition pos);
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht);
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos);