summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-09-27 15:24:09 +0000
committerSascha Schumann <sas@php.net>2000-09-27 15:24:09 +0000
commit5bf4e7857d30cceb4c79bd8bb2ebbfdb7dbedeed (patch)
treeb66a98064bb54d99018248dd5ab1675c0ea551a5
parent1cc3e6b5e664c25836bc770322d8a44e3b90f48a (diff)
downloadphp-git-5bf4e7857d30cceb4c79bd8bb2ebbfdb7dbedeed.tar.gz
Clean up STR_CAT macro (it is still ugly)
-rw-r--r--ext/session/session.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 3416985fe0..33d36d17af 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -169,14 +169,9 @@ typedef struct {
#define STR_CAT(P,S,I) {\
pval *__p = (P);\
size_t __l = (I);\
- ulong __i = Z_STRLEN_P(__p);\
- Z_STRLEN_P(__p) += __l;\
- if (Z_STRVAL_P(__p)) {\
- Z_STRVAL_P(__p) = (char *)erealloc(Z_STRVAL_P(__p), Z_STRLEN_P(__p) + 1);\
- } else {\
- Z_STRVAL_P(__p) = emalloc(Z_STRLEN_P(__p) + 1);\
- *Z_STRVAL_P(__p) = 0;\
- }\
+ ulong __i = Z_STRLEN_P(__p);\
+ Z_STRLEN_P(__p) += __l;\
+ Z_STRVAL_P(__p) = (char *)erealloc(Z_STRVAL_P(__p), Z_STRLEN_P(__p) + 1);\
memcpy(Z_STRVAL_P(__p) + __i, (S), __l); \
Z_STRVAL_P(__p)[Z_STRLEN_P(__p)] = '\0'; \
}