summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.c
diff options
context:
space:
mode:
authorferrieux <ferrieux@users.sourceforge.net>2008-11-27 08:23:51 (GMT)
committerferrieux <ferrieux@users.sourceforge.net>2008-11-27 08:23:51 (GMT)
commitb3c483496b534112065b4bc5a60f2f4c85c85a03 (patch)
tree5ca6dc7e5906603f5aaa71449b054d51c5402db0 /generic/tclCompile.c
parentaf5fd80ac65755d299d93e203c672f974594e42d (diff)
downloadtcl-b3c483496b534112065b4bc5a60f2f4c85c85a03.zip
tcl-b3c483496b534112065b4bc5a60f2f4c85c85a03.tar.gz
tcl-b3c483496b534112065b4bc5a60f2f4c85c85a03.tar.bz2
Alternate fix for[Bug 2251175]: missing backslash substitution on expanded literals.
Diffstat (limited to 'generic/tclCompile.c')
-rw-r--r--generic/tclCompile.c31
1 files changed, 3 insertions, 28 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index c73be7d..94e3c61 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCompile.c,v 1.162 2008/11/19 00:00:20 ferrieux Exp $
+ * RCS: @(#) $Id: tclCompile.c,v 1.163 2008/11/27 08:23:51 ferrieux Exp $
*/
#include "tclInt.h"
@@ -1077,7 +1077,6 @@ TclWordKnownAtCompileTime(
{
int numComponents = tokenPtr->numComponents;
Tcl_Obj *tempPtr = NULL;
- char *collapsed=NULL;
if (tokenPtr->type == TCL_TOKEN_SIMPLE_WORD) {
if (valuePtr != NULL) {
@@ -1101,17 +1100,6 @@ TclWordKnownAtCompileTime(
}
break;
- case TCL_TOKEN_UNCOLLAPSED_TEXT:
- if (tempPtr != NULL) {
- if (collapsed)
- collapsed=ckrealloc(collapsed,tokenPtr->size);
- else
- collapsed=ckalloc(tokenPtr->size);
- Tcl_AppendToObj(tempPtr, collapsed, TclCopyAndCollapse(tokenPtr->size,tokenPtr->start,collapsed));
- }
- break;
-
-
case TCL_TOKEN_BS:
if (tempPtr != NULL) {
char utfBuf[TCL_UTF_MAX];
@@ -1122,14 +1110,12 @@ TclWordKnownAtCompileTime(
default:
if (tempPtr != NULL) {
- if (collapsed) ckfree(collapsed);
Tcl_DecrRefCount(tempPtr);
}
return 0;
}
tokenPtr++;
}
- if (collapsed) ckfree(collapsed);
if (valuePtr != NULL) {
Tcl_AppendObjToObj(valuePtr, tempPtr);
Tcl_DecrRefCount(tempPtr);
@@ -1462,7 +1448,7 @@ TclCompileScript(
*/
objIndex = TclRegisterNewNSLiteral(envPtr,
- tokenPtr[1].start, tokenPtr[1].size);
+ tokenPtr[1].start, tokenPtr[1].size);
if (cmdPtr != NULL) {
TclSetCmdNameObj(interp,
envPtr->literalArrayPtr[objIndex].objPtr,cmdPtr);
@@ -1486,7 +1472,7 @@ TclCompileScript(
* which already allows absolute counting.
*/
objIndex = TclRegisterNewLiteral(envPtr,
- tokenPtr[1].start, tokenPtr[1].size);
+ tokenPtr[1].start, tokenPtr[1].size);
if (eclPtr->type == TCL_LOCATION_SOURCE) {
EnterCmdWordIndex(eclPtr,
@@ -1623,7 +1609,6 @@ TclCompileTokens(
int numObjsToConcat, nameBytes, localVarName, localVar;
int length, i;
unsigned char *entryCodeNext = envPtr->codeNext;
- char *collapsed=NULL;
Tcl_DStringInit(&textBuffer);
numObjsToConcat = 0;
@@ -1633,14 +1618,6 @@ TclCompileTokens(
Tcl_DStringAppend(&textBuffer, tokenPtr->start, tokenPtr->size);
break;
- case TCL_TOKEN_UNCOLLAPSED_TEXT:
- if (collapsed)
- collapsed=ckrealloc(collapsed,tokenPtr->size);
- else
- collapsed=ckalloc(tokenPtr->size);
- Tcl_DStringAppend(&textBuffer, collapsed, TclCopyAndCollapse(tokenPtr->size,tokenPtr->start,collapsed));
- break;
-
case TCL_TOKEN_BS:
length = Tcl_UtfBackslash(tokenPtr->start, NULL, buffer);
Tcl_DStringAppend(&textBuffer, buffer, length);
@@ -1756,8 +1733,6 @@ TclCompileTokens(
}
}
- if (collapsed) ckfree(collapsed);
-
/*
* Push any accumulated characters appearing at the end.
*/