diff options
author | Sascha Schumann <sas@php.net> | 2000-10-26 18:01:51 +0000 |
---|---|---|
committer | Sascha Schumann <sas@php.net> | 2000-10-26 18:01:51 +0000 |
commit | 8ef0d01baf9433ce48895f6cec66620ce4a0e067 (patch) | |
tree | 0ec006e759e896777d964f50ee20128b019956d1 /ext/standard/php_smart_str.h | |
parent | 5b7ff6f72ae9a8b11c8d57245939806cabcd95e4 (diff) | |
download | php-git-8ef0d01baf9433ce48895f6cec66620ce4a0e067.tar.gz |
Make the API more leaner (sp?) and get rid of *copy*.
Diffstat (limited to 'ext/standard/php_smart_str.h')
-rw-r--r-- | ext/standard/php_smart_str.h | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/ext/standard/php_smart_str.h b/ext/standard/php_smart_str.h index 6199051dad..107acc8c86 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) |