diff options
-rw-r--r-- | Zend/zend_alloc.c | 10 | ||||
-rw-r--r-- | Zend/zend_alloc.h | 14 | ||||
-rw-r--r-- | Zend/zend_smart_str.h | 17 |
3 files changed, 16 insertions, 25 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 16fd42e80f..6701ca4902 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -287,6 +287,16 @@ struct _zend_mm_bin { char bytes[ZEND_MM_PAGE_SIZE * 8]; }; +#if ZEND_DEBUG +typedef struct _zend_mm_debug_info { + size_t size; + const char *filename; + const char *orig_filename; + uint lineno; + uint orig_lineno; +} zend_mm_debug_info; +#endif + struct _zend_mm_free_slot { zend_mm_free_slot *next_free_slot; }; diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index 0cb3a71d34..6d89884f0d 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -50,20 +50,6 @@ typedef struct _zend_leak_info { uint orig_lineno; } zend_leak_info; -#if ZEND_DEBUG -typedef struct _zend_mm_debug_info { - size_t size; - const char *filename; - const char *orig_filename; - uint lineno; - uint orig_lineno; -} zend_mm_debug_info; - -# define ZEND_MM_OVERHEAD ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info)) -#else -# define ZEND_MM_OVERHEAD 0 -#endif - BEGIN_EXTERN_C() ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length) ZEND_ATTRIBUTE_MALLOC; diff --git a/Zend/zend_smart_str.h b/Zend/zend_smart_str.h index 4a37dd66f0..c18b133dfe 100644 --- a/Zend/zend_smart_str.h +++ b/Zend/zend_smart_str.h @@ -22,19 +22,14 @@ #include <zend.h> #include "zend_smart_str_public.h" -#define SMART_STR_OVERHEAD (ZEND_MM_OVERHEAD + _STR_HEADER_SIZE) - -#ifndef SMART_STR_PAGE -# define SMART_STR_PAGE 4096 +#ifndef SMART_STR_PREALLOC +#define SMART_STR_PREALLOC 128 #endif #ifndef SMART_STR_START_SIZE -# define SMART_STR_START_SIZE (256 - SMART_STR_OVERHEAD - 1) +#define SMART_STR_START_SIZE 78 #endif -#define SMART_STR_NEW_SIZE(newlen) \ - (((newlen + SMART_STR_OVERHEAD + SMART_STR_PAGE) & ~(SMART_STR_PAGE - 1)) - SMART_STR_OVERHEAD - 1) - #define smart_str_appends_ex(dest, src, what) \ smart_str_appendl_ex((dest), (src), strlen(src), (what)) #define smart_str_appends(dest, src) \ @@ -60,14 +55,14 @@ static zend_always_inline size_t smart_str_alloc(smart_str *str, size_t len, zen newlen = len; str->a = newlen < SMART_STR_START_SIZE ? SMART_STR_START_SIZE - : SMART_STR_NEW_SIZE(newlen); + : newlen + SMART_STR_PREALLOC; str->s = zend_string_alloc(str->a, persistent); str->s->len = 0; } else { newlen = str->s->len + len; if (newlen >= str->a) { - str->a = SMART_STR_NEW_SIZE(newlen); - str->s = (zend_string *) perealloc2(str->s, _STR_HEADER_SIZE + str->a + 1, _STR_HEADER_SIZE + str->s->len + 1, persistent); + str->a = newlen + SMART_STR_PREALLOC; + str->s = (zend_string *) perealloc(str->s, _STR_HEADER_SIZE + str->a + 1, persistent); } } return newlen; |