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);

Reply via email to