Author: ek.kato
Date: Mon Nov 5 02:42:37 2007
New Revision: 5041
Modified:
branches/sigscheme-0.7/src/string-procedure.c
Log:
* src/string-procedure.c (scm_p_string_setx) : Port r5038:5040
from sigscheme-trunk.
Modified: branches/sigscheme-0.7/src/string-procedure.c
==============================================================================
--- branches/sigscheme-0.7/src/string-procedure.c (original)
+++ branches/sigscheme-0.7/src/string-procedure.c Mon Nov 5 02:42:37 2007
@@ -231,8 +231,11 @@
suffix_len = strlen(suffix_src);
new_str_len = prefix_len + ch_len + suffix_len;
- new_str = scm_realloc(c_str, new_str_len + sizeof(""));
-
+ if (ch_len > orig_ch_len) {
+ new_str = scm_realloc(c_str, new_str_len + sizeof(""));
+ } else {
+ new_str = c_str;
+ }
suffix_src = &new_str[prefix_len + orig_ch_len];
suffix_dst = &new_str[prefix_len + ch_len];
memmove(suffix_dst, suffix_src, suffix_len);