diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-04-25 11:29:18 +0400 | 
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-04-25 11:29:18 +0400 | 
| commit | 42a33085c8fe320ddf555d270cf0bae94af83f92 (patch) | |
| tree | f6b68486775a2cc8ac9350921929a55a172a5109 | |
| parent | d0ed1212a454dbbae7ec0327bc4f063e26037a0b (diff) | |
| download | php-git-42a33085c8fe320ddf555d270cf0bae94af83f92.tar.gz | |
Avoid useless allocations
| -rw-r--r-- | Zend/zend_hash.h | 36 | 
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;  }  | 
