From: Zeev Suraski Date: Mon, 7 Jun 1999 22:49:33 +0000 (+0000) Subject: Add zend_hash_get_current_key_type() X-Git-Tag: BEFORE_REMOVING_GC_STEP1~175 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd4650b540d0907f21e5b45643ce9ef8ba2497b6;p=php Add zend_hash_get_current_key_type() --- diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 6372aadb13..2fb21f00c1 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -1025,6 +1025,21 @@ ZEND_API int zend_hash_get_current_key(HashTable *ht, char **str_index, ulong *n } +ZEND_API int zend_hash_get_current_key_type(HashTable *ht) +{ + Bucket *p = ht->pInternalPointer; + + if (p) { + if (p->nKeyLength) { + return HASH_KEY_IS_STRING; + } else { + return HASH_KEY_IS_LONG; + } + } + return HASH_KEY_NON_EXISTANT; +} + + ZEND_API int zend_hash_get_current_data(HashTable *ht, void **pData) { Bucket *p = ht->pInternalPointer; diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index 0eb8436702..fb4d59579d 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -61,6 +61,8 @@ typedef struct hashtable { } HashTable; +BEGIN_EXTERN_C() + /* startup/shutdown */ ZEND_API int zend_hash_init(HashTable *ht, uint nSize, ulong(*pHashFunction) (char *arKey, uint nKeyLength), void (*pDestructor) (void *pData), int persistent); ZEND_API void zend_hash_destroy(HashTable *ht); @@ -129,6 +131,7 @@ ZEND_API ulong zend_hash_next_free_element(HashTable *ht); ZEND_API void zend_hash_move_forward(HashTable *ht); ZEND_API void zend_hash_move_backwards(HashTable *ht); ZEND_API int zend_hash_get_current_key(HashTable *ht, char **str_index, ulong *num_index); +ZEND_API int zend_hash_get_current_key_type(HashTable *ht); ZEND_API int zend_hash_get_current_data(HashTable *ht, void **pData); ZEND_API void zend_hash_internal_pointer_reset(HashTable *ht); ZEND_API void zend_hash_internal_pointer_end(HashTable *ht); @@ -150,4 +153,6 @@ void zend_hash_display_pListTail(HashTable *ht); void zend_hash_display(HashTable *ht); #endif +END_EXTERN_C() + #endif /* _HASH_ */