sas Wed Jun 18 12:15:47 2003 EDT Modified files: /php4/ext/standard php_smart_str.h Log: Use a smaller default size to accomodate the engine Submitted by: Stanislav Malyshev, with some massaging by me Index: php4/ext/standard/php_smart_str.h diff -u php4/ext/standard/php_smart_str.h:1.26 php4/ext/standard/php_smart_str.h:1.27 --- php4/ext/standard/php_smart_str.h:1.26 Tue Jun 10 16:03:38 2003 +++ php4/ext/standard/php_smart_str.h Wed Jun 18 12:15:47 2003 @@ -36,19 +36,33 @@ #define SMART_STR_PREALLOC 128 #endif +#ifndef SMART_STR_START_SIZE +#define SMART_STR_START_SIZE 78 +#endif + #ifdef SMART_STR_USE_REALLOC #define SMART_STR_REALLOC(a,b,c) realloc((a),(b)) #else #define SMART_STR_REALLOC(a,b,c) perealloc((a),(b),(c)) #endif +#define SMART_STR_DO_REALLOC(d, what) \ + (d)->c = SMART_STR_REALLOC((d)->c, (d)->a + 1, (what)) #define smart_str_alloc4(d, n, what, newlen) do { \ - if (!(d)->c) (d)->len = (d)->a = 0; \ - newlen = (d)->len + (n); \ - if (newlen >= (d)->a) { \ - (d)->a = newlen + SMART_STR_PREALLOC; \ - (d)->c = SMART_STR_REALLOC((d)->c, (d)->a + 1, (what)); \ + if (!(d)->c) { \ + (d)->len = 0; \ + newlen = (n); \ + (d)->a = newlen < SMART_STR_START_SIZE \ + ? SMART_STR_START_SIZE \ + : newlen + SMART_STR_PREALLOC; \ + SMART_STR_DO_REALLOC(d, what); \ + } else { \ + newlen = (d)->len + (n); \ + if (newlen >= (d)->a) { \ + (d)->a = newlen + SMART_STR_PREALLOC; \ + SMART_STR_DO_REALLOC(d, what); \ + } \ } \ } while (0)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php