return p ? &p->val : NULL;
}
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_exists(const HashTable *ht, zend_string *key)
-{
- Bucket *p;
-
- IS_CONSISTENT(ht);
-
- p = zend_hash_find_bucket(ht, key, 0);
- return p ? 1 : 0;
-}
-
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_str_exists(const HashTable *ht, const char *str, size_t len)
-{
- zend_ulong h;
- Bucket *p;
-
- IS_CONSISTENT(ht);
-
- h = zend_inline_hash_func(str, len);
- p = zend_hash_str_find_bucket(ht, str, len, h);
- return p ? 1 : 0;
-}
-
ZEND_API zval* ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h)
{
Bucket *p;
return p ? &p->val : NULL;
}
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_index_exists(const HashTable *ht, zend_ulong h)
-{
- Bucket *p;
-
- IS_CONSISTENT(ht);
-
- if (HT_FLAGS(ht) & HASH_FLAG_PACKED) {
- if (h < ht->nNumUsed) {
- if (Z_TYPE(ht->arData[h].val) != IS_UNDEF) {
- return 1;
- }
- }
- return 0;
- }
-
- p = zend_hash_index_find_bucket(ht, h);
- return p ? 1 : 0;
-}
-
-
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos)
{
IS_CONSISTENT(ht);
/* Misc */
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_exists(const HashTable *ht, zend_string *key);
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_str_exists(const HashTable *ht, const char *str, size_t len);
-ZEND_API zend_bool ZEND_FASTCALL zend_hash_index_exists(const HashTable *ht, zend_ulong h);
+static zend_always_inline zend_bool zend_hash_exists(const HashTable *ht, zend_string *key)
+{
+ return zend_hash_find(ht, key) != NULL;
+}
+
+static zend_always_inline zend_bool zend_hash_str_exists(const HashTable *ht, const char *str, size_t len)
+{
+ return zend_hash_str_find(ht, str, len) != NULL;
+}
+
+static zend_always_inline zend_bool zend_hash_index_exists(const HashTable *ht, zend_ulong h)
+{
+ return zend_hash_index_find(ht, h) != NULL;
+}
/* traversing */
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht);
return retval;
}
-ZEND_API int zend_ts_hash_exists(TsHashTable *ht, zend_string *key)
-{
- int retval;
-
- begin_read(ht);
- retval = zend_hash_exists(TS_HASH(ht), key);
- end_read(ht);
-
- return retval;
-}
-
-ZEND_API int zend_ts_hash_index_exists(TsHashTable *ht, zend_ulong h)
-{
- int retval;
-
- begin_read(ht);
- retval = zend_hash_index_exists(TS_HASH(ht), h);
- end_read(ht);
-
- return retval;
-}
-
ZEND_API void zend_ts_hash_copy(TsHashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor)
{
begin_read(source);
ZEND_API zval *zend_ts_hash_find(TsHashTable *ht, zend_string *key);
ZEND_API zval *zend_ts_hash_index_find(TsHashTable *ht, zend_ulong);
-/* Misc */
-ZEND_API int zend_ts_hash_exists(TsHashTable *ht, zend_string *key);
-ZEND_API int zend_ts_hash_index_exists(TsHashTable *ht, zend_ulong h);
-
/* Copying, merging and sorting */
ZEND_API void zend_ts_hash_copy(TsHashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor);
ZEND_API void zend_ts_hash_copy_to_hash(HashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor);
return zv ? Z_PTR_P(zv) : NULL;
}
+static zend_always_inline int zend_ts_hash_exists(TsHashTable *ht, zend_string *key)
+{
+ return zend_ts_hash_find(ht, key) != NULL;
+}
+
+static zend_always_inline int zend_ts_hash_index_exists(TsHashTable *ht, zend_ulong h)
+{
+ return zend_ts_hash_index_find(ht, h) != NULL;
+}
+
END_EXTERN_C()
#define ZEND_TS_INIT_SYMTABLE(ht) \