diff options
Diffstat (limited to 'Zend/zend_alloc.h')
-rw-r--r-- | Zend/zend_alloc.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index ea6cbf7871..93ec2f834e 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -195,7 +195,14 @@ ZEND_API void * __zend_realloc(void *p, size_t len) ZEND_ATTRIBUTE_ALLOC_SIZE(2) #define pemalloc(size, persistent) ((persistent)?__zend_malloc(size):emalloc(size)) #define safe_pemalloc(nmemb, size, offset, persistent) ((persistent)?_safe_malloc(nmemb, size, offset):safe_emalloc(nmemb, size, offset)) #define pefree(ptr, persistent) ((persistent)?free(ptr):efree(ptr)) -#define pefree_size(ptr, size, persistent) ((persistent)?free(ptr):efree_size(ptr, size)) +#define pefree_size(ptr, size, persistent) do { \ + if (persistent) { \ + free(ptr); \ + } else { \ + efree_size(ptr, size);\ + } \ + } while (0) + #define pecalloc(nmemb, size, persistent) ((persistent)?__zend_calloc((nmemb), (size)):ecalloc((nmemb), (size))) #define perealloc(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc((ptr), (size))) #define perealloc2(ptr, size, copy_size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc2((ptr), (size), (copy_size))) |