From 8ef0d01baf9433ce48895f6cec66620ce4a0e067 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Thu, 26 Oct 2000 18:01:51 +0000 Subject: [PATCH] Make the API more leaner (sp?) and get rid of *copy*. --- ext/standard/php_smart_str.h | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/ext/standard/php_smart_str.h b/ext/standard/php_smart_str.h index 6199051dade..107acc8c864 100644 --- a/ext/standard/php_smart_str.h +++ b/ext/standard/php_smart_str.h @@ -24,6 +24,7 @@ #define smart_str_0(x) ((x)->c[(x)->len] = '\0') #define smart_str_alloc(d,n) {\ + /* if (!d->c) d->len = d->a = 0; */ \ if (n >= d->a) {\ d->c = erealloc(d->c, n + 129); \ d->a = n + 128; \ @@ -32,19 +33,6 @@ #define smart_str_appends(dest, src) smart_str_appendl(dest, src, sizeof(src)-1) -static inline void smart_str_append(smart_str *dest, smart_str *src) -{ - size_t newlen; - - if (!dest->c) - dest->len = dest->a = 0; - - newlen = dest->len + src->len; - smart_str_alloc(dest, newlen); - memcpy(dest->c + dest->len, src->c, src->len); - dest->len = newlen; -} - static inline void smart_str_appendc(smart_str *dest, char c) { ++dest->len; @@ -61,21 +49,19 @@ static inline void smart_str_free(smart_str *s) s->a = s->len = 0; } -static inline void smart_str_copyl(smart_str *dest, const char *src, size_t len) -{ - smart_str_alloc(dest, len); - memcpy(dest->c, src, len); - dest->len = len; -} - static inline void smart_str_appendl(smart_str *dest, const char *src, size_t len) { - smart_str s; + size_t newlen; - s.c = (char *) src; - s.len = len; + newlen = dest->len + len; + smart_str_alloc(dest, newlen); + memcpy(dest->c + dest->len, src, len); + dest->len = newlen; +} - smart_str_append(dest, &s); +static inline void smart_str_append(smart_str *dest, smart_str *src) +{ + smart_str_appendl(dest, src->c, src->len); } static inline void smart_str_setl(smart_str *dest, const char *src, size_t len)