diff options
author | Dmitry Stogov <dmitry@zend.com> | 2013-11-29 00:57:49 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2013-11-29 00:57:49 +0400 |
commit | 6c2a8068207a02b3d7ae7416a9967dad0a81e61f (patch) | |
tree | 3a6671f49b63034cd8c65befe6f8bd6ea84fd89b /Zend/zend_hash.c | |
parent | 5d2576264653c2faaca9cd7d64218d10ab612408 (diff) | |
download | php-git-6c2a8068207a02b3d7ae7416a9967dad0a81e61f.tar.gz |
Avoid interned hash key duplication and hash key length recaclulation
Diffstat (limited to 'Zend/zend_hash.c')
-rw-r--r-- | Zend/zend_hash.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index b8aa679f96..e938d1d3d7 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -1123,7 +1123,7 @@ ZEND_API void zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, Z_TYPE_P(key) = IS_NULL; } else if (p->nKeyLength) { Z_TYPE_P(key) = IS_STRING; - Z_STRVAL_P(key) = estrndup(p->arKey, p->nKeyLength - 1); + Z_STRVAL_P(key) = IS_INTERNED(p->arKey) ? (char*)p->arKey : estrndup(p->arKey, p->nKeyLength - 1); Z_STRLEN_P(key) = p->nKeyLength - 1; } else { Z_TYPE_P(key) = IS_LONG; |