]> granicus.if.org Git - php/commitdiff
Revert "Changed zend_smart_str allocation granularity to do the better job together...
authorDmitry Stogov <dmitry@zend.com>
Thu, 16 Apr 2015 10:11:54 +0000 (13:11 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 16 Apr 2015 10:11:54 +0000 (13:11 +0300)
This reverts commit 5275e5560bb186bc3950a0dbf15fe0e54ee4c6ec.

Zend/zend_alloc.c
Zend/zend_alloc.h
Zend/zend_smart_str.h

index 16fd42e80f1ebc3388ca84ea68498c7604225ef2..6701ca49028b55e33893fc2ae8fee56d0a66ce5f 100644 (file)
@@ -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;
 };
index 0cb3a71d345f94e3cf6ebf55dd30c31d5aedb845..6d89884f0dbd1de457b540e8cfd5af926d2669e3 100644 (file)
@@ -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;
index 4a37dd66f04820a6a87adec1ab2c1ee4932961ed..c18b133dfec3461502ba41aa0ab9647fcabadc58 100644 (file)
 #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;