]> granicus.if.org Git - php/commitdiff
Add zend_hash_get_current_key_type()
authorZeev Suraski <zeev@php.net>
Mon, 7 Jun 1999 22:49:33 +0000 (22:49 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 7 Jun 1999 22:49:33 +0000 (22:49 +0000)
Zend/zend_hash.c
Zend/zend_hash.h

index 6372aadb13cc19811df48d5a508c7a43c83337ca..2fb21f00c10eae8ee4c930567a6dd7fc1611206f 100644 (file)
@@ -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;
index 0eb8436702220539261ed07f33e901cca4d6d803..fb4d59579d4679d27dd24ef482757741eaa51c74 100644 (file)
@@ -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_ */