diff options
author | stanton <stanton> | 1999-04-28 17:06:06 (GMT) |
---|---|---|
committer | stanton <stanton> | 1999-04-28 17:06:06 (GMT) |
commit | a12837eeef8ecf52959c787988f8a45eb8baf704 (patch) | |
tree | 856e7536adf9af9ca2fbd629f5843a04f50f9e00 /generic/tclStringObj.c | |
parent | 5bec7274093b637944fb3f2d53d71901734f877f (diff) | |
download | tcl-a12837eeef8ecf52959c787988f8a45eb8baf704.zip tcl-a12837eeef8ecf52959c787988f8a45eb8baf704.tar.gz tcl-a12837eeef8ecf52959c787988f8a45eb8baf704.tar.bz2 |
* mac/tclMacResource.c:
* generic/tclListObj.c:
* generic/tclObj.c:
* generic/tclStringObj.c: Changed to avoid freeing the string
representation before freeing the internal rep. This helps with
debugging since the string rep will still be valid when the free
proc is invoked.
Diffstat (limited to 'generic/tclStringObj.c')
-rw-r--r-- | generic/tclStringObj.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index c0261c7..e7d3ae7 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStringObj.c,v 1.4 1999/04/16 00:46:53 stanton Exp $ + * RCS: @(#) $Id: tclStringObj.c,v 1.5 1999/04/28 17:06:06 stanton Exp $ */ #include "tclInt.h" @@ -222,12 +222,6 @@ Tcl_SetStringObj(objPtr, bytes, length) panic("Tcl_SetStringObj called with shared object"); } - Tcl_InvalidateStringRep(objPtr); - if (length < 0) { - length = (bytes? strlen(bytes) : 0); - } - TclInitStringRep(objPtr, bytes, length); - /* * Set the type to NULL and free any internal rep for the old type. */ @@ -236,6 +230,12 @@ Tcl_SetStringObj(objPtr, bytes, length) oldTypePtr->freeIntRepProc(objPtr); } objPtr->typePtr = NULL; + + Tcl_InvalidateStringRep(objPtr); + if (length < 0) { + length = (bytes? strlen(bytes) : 0); + } + TclInitStringRep(objPtr, bytes, length); } /* |