summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-25 11:29:18 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-25 11:29:18 +0400
commit42a33085c8fe320ddf555d270cf0bae94af83f92 (patch)
treef6b68486775a2cc8ac9350921929a55a172a5109
parentd0ed1212a454dbbae7ec0327bc4f063e26037a0b (diff)
downloadphp-git-42a33085c8fe320ddf555d270cf0bae94af83f92.tar.gz
Avoid useless allocations
-rw-r--r--Zend/zend_hash.h36
1 files changed, 18 insertions, 18 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 54575c23f1..3db7abdf11 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -417,27 +417,27 @@ static inline void *zend_hash_str_update_ptr(HashTable *ht, const char *str, int
static inline void *zend_hash_add_mem(HashTable *ht, zend_string *key, void *pData, size_t size)
{
- void *p, *r;
+ zval tmp, *zv;
- p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
- memcpy(p, pData, size);
- if ((r = zend_hash_add_ptr(ht, key, p))) {
- return r;
+ ZVAL_PTR(&tmp, NULL);
+ if ((zv = zend_hash_add(ht, key, &tmp))) {
+ Z_PTR_P(zv) = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
+ memcpy(Z_PTR_P(zv), pData, size);
+ return Z_PTR_P(zv);
}
- pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}
static inline void *zend_hash_str_add_mem(HashTable *ht, const char *str, int len, void *pData, size_t size)
{
- void *p, *r;
+ zval tmp, *zv;
- p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
- memcpy(p, pData, size);
- if ((r = zend_hash_str_add_ptr(ht, str, len, p))) {
- return r;
+ ZVAL_PTR(&tmp, NULL);
+ if ((zv = zend_hash_str_add(ht, str, len, &tmp))) {
+ Z_PTR_P(zv) = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
+ memcpy(Z_PTR_P(zv), pData, size);
+ return Z_PTR_P(zv);
}
- pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}
@@ -488,14 +488,14 @@ static inline void *zend_hash_index_update_mem(HashTable *ht, ulong h, void *pDa
static inline void *zend_hash_next_index_insert_mem(HashTable *ht, void *pData, size_t size)
{
- void *p, *r;
+ zval tmp, *zv;
- p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
- memcpy(p, pData, size);
- if ((r = zend_hash_next_index_insert_ptr(ht, p))) {
- return r;
+ ZVAL_PTR(&tmp, NULL);
+ if ((zv = zend_hash_next_index_insert(ht, &tmp))) {
+ Z_PTR_P(zv) = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
+ memcpy(Z_PTR_P(zv), pData, size);
+ return Z_PTR_P(zv);
}
- pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}