summaryrefslogtreecommitdiff
path: root/ext/standard/string.c
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2001-08-03 09:50:38 +0000
committerSascha Schumann <sas@php.net>2001-08-03 09:50:38 +0000
commitf6ed403fde48991afd66ea5eb93573f99b27e34a (patch)
tree0af0beedee236ac43a5b606c9dfe17536322ec8d /ext/standard/string.c
parent84aed3b718817b8e90328e38bd5d2fc5847ba365 (diff)
downloadphp-git-f6ed403fde48991afd66ea5eb93573f99b27e34a.tar.gz
Don't copy the strtok parameter
Diffstat (limited to 'ext/standard/string.c')
-rw-r--r--ext/standard/string.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index c62d78a120..ad1a246db3 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -829,8 +829,12 @@ PHP_FUNCTION(strtok)
tok = args[1];
convert_to_string_ex(str);
- STR_FREE(BG(strtok_string));
- BG(strtok_last) = BG(strtok_string) = estrndup(Z_STRVAL_PP(str), Z_STRLEN_PP(str));
+ zval_add_ref(str);
+ if (BG(strtok_zval))
+ zval_ptr_dtor(BG(strtok_zval));
+ BG(strtok_zval) = str;
+
+ BG(strtok_last) = BG(strtok_string) = Z_STRVAL_PP(str);
BG(strtok_len) = Z_STRLEN_PP(str);
break;
}