From eb8817687f0753816e8308b93b3e992414afeca4 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 5 Apr 2018 15:37:40 +0000 Subject: [string cat] was failing to NUL terminate string reps. Stopped "string" values triggering false valgrind alarms when tests make use of [tcl::unsupported::representation]. --- generic/tclStringObj.c | 2 ++ generic/tclStringRep.h | 1 + 2 files changed, 3 insertions(+) diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 2ebec64..a2a1d41 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -3205,6 +3205,8 @@ TclStringCat( dst += more; } } + /* Must NUL-terminate! */ + *dst = '\0'; } return objResultPtr; diff --git a/generic/tclStringRep.h b/generic/tclStringRep.h index 1ef1957..fc5a713 100644 --- a/generic/tclStringRep.h +++ b/generic/tclStringRep.h @@ -86,6 +86,7 @@ typedef struct { #define GET_STRING(objPtr) \ ((String *) (objPtr)->internalRep.twoPtrValue.ptr1) #define SET_STRING(objPtr, stringPtr) \ + ((objPtr)->internalRep.twoPtrValue.ptr2 = NULL), \ ((objPtr)->internalRep.twoPtrValue.ptr1 = (void *) (stringPtr)) /* -- cgit v0.12