diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tclStringObj.c | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2012-02-09 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Converted the memcpy() calls in + append operations to memmove() calls. This adds safety in the case + of overlapping copies, and improves performance on some benchmarks. + 2012-02-06 Don Porter <dgp@users.sourceforge.net> * generic/tclEnsemble.c: [Bug 3485022] TclCompileEnsemble() avoid diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index d721c47..04cf4ee 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1437,7 +1437,7 @@ AppendUnicodeToUnicodeRep( * trailing null. */ - memcpy(stringPtr->unicode + stringPtr->numChars, unicode, + memmove(stringPtr->unicode + stringPtr->numChars, unicode, appendNumChars * sizeof(Tcl_UniChar)); stringPtr->unicode[numChars] = 0; stringPtr->numChars = numChars; @@ -1605,7 +1605,7 @@ AppendUtfToUtfRep( stringPtr->numChars = -1; stringPtr->hasUnicode = 0; - memcpy(objPtr->bytes + oldLength, bytes, numBytes); + memmove(objPtr->bytes + oldLength, bytes, numBytes); objPtr->bytes[newLength] = 0; objPtr->length = newLength; } |