summaryrefslogtreecommitdiff
path: root/Zend/zend_hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_hash.c')
-rw-r--r--Zend/zend_hash.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 08dd56ff27..ec2141eec4 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -486,8 +486,7 @@ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, zen
return p;
} else if (EXPECTED(p->h == h) &&
EXPECTED(p->key) &&
- EXPECTED(ZSTR_LEN(p->key) == ZSTR_LEN(key)) &&
- EXPECTED(memcmp(ZSTR_VAL(p->key), ZSTR_VAL(key), ZSTR_LEN(key)) == 0)) {
+ EXPECTED(zend_string_equal_content(p->key, key))) {
return p;
}
idx = Z_NEXT(p->val);
@@ -1125,8 +1124,7 @@ ZEND_API int ZEND_FASTCALL zend_hash_del(HashTable *ht, zend_string *key)
if ((p->key == key) ||
(p->h == h &&
p->key &&
- ZSTR_LEN(p->key) == ZSTR_LEN(key) &&
- memcmp(ZSTR_VAL(p->key), ZSTR_VAL(key), ZSTR_LEN(key)) == 0)) {
+ zend_string_equal_content(p->key, key))) {
_zend_hash_del_el_ex(ht, idx, p, prev);
return SUCCESS;
}
@@ -1156,8 +1154,7 @@ ZEND_API int ZEND_FASTCALL zend_hash_del_ind(HashTable *ht, zend_string *key)
if ((p->key == key) ||
(p->h == h &&
p->key &&
- ZSTR_LEN(p->key) == ZSTR_LEN(key) &&
- memcmp(ZSTR_VAL(p->key), ZSTR_VAL(key), ZSTR_LEN(key)) == 0)) {
+ zend_string_equal_content(p->key, key))) {
if (Z_TYPE(p->val) == IS_INDIRECT) {
zval *data = Z_INDIRECT(p->val);