summaryrefslogtreecommitdiffstats
path: root/generic/tclStringObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-02 12:00:02 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-02 12:00:02 (GMT)
commit2867ac26373a64724686df3d77d9d323343bcc84 (patch)
treeae328d054031055467a0fc8c3767e56431e69f36 /generic/tclStringObj.c
parent56d50aec7cab7011ab2b1e430403aa92d76e313c (diff)
downloadtcl-2867ac26373a64724686df3d77d9d323343bcc84.zip
tcl-2867ac26373a64724686df3d77d9d323343bcc84.tar.gz
tcl-2867ac26373a64724686df3d77d9d323343bcc84.tar.bz2
New (internal) macro TclAttemptInitStringRep()
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r--generic/tclStringObj.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 0e47487..6450317 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -3517,8 +3517,14 @@ TclStringCat(
/* assert ( objc >= 0 ) */
if (objc <= 1) {
- /* Negative (shouldn't be), one or no objects; return first or empty */
- return objc == 1 ? objv[0] : Tcl_NewObj();
+ if (objc != 1) {
+ /* Negative (shouldn't be) no objects; return empty */
+ Tcl_Obj *obj;
+ TclNewObj(obj);
+ return obj;
+ }
+ /* One object; return first */
+ return objv[0];
}
/* assert ( objc >= 2 ) */
@@ -4816,7 +4822,7 @@ UpdateStringOfString(
stringPtr->allocated = 0;
if (stringPtr->numChars == 0) {
- TclInitStringRep(objPtr, NULL, 0);
+ TclInitEmptyStringRep(objPtr);
} else {
(void) ExtendStringRepWithUnicode(objPtr, stringPtr->unicode,
stringPtr->numChars);