summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgeneric/tclArithSeries.c1
-rw-r--r--generic/tclAssembly.c1
-rw-r--r--generic/tclBasic.c1
-rw-r--r--generic/tclBinary.c1
-rw-r--r--generic/tclCkalloc.c1
-rw-r--r--generic/tclCmdIL.c1
-rw-r--r--generic/tclCompCmds.c3
-rw-r--r--generic/tclCompCmdsGR.c1
-rw-r--r--generic/tclCompile.c1
-rw-r--r--generic/tclDictObj.c1
-rw-r--r--generic/tclDisassemble.c1
-rw-r--r--generic/tclEncoding.c1
-rw-r--r--generic/tclExecute.c150
-rw-r--r--generic/tclIO.c1
-rw-r--r--generic/tclIORChan.c1
-rw-r--r--generic/tclIORTrans.c1
-rw-r--r--generic/tclInt.decls2
-rw-r--r--generic/tclInt.h12
-rw-r--r--generic/tclIntDecls.h4
-rw-r--r--generic/tclListObj.c1
-rw-r--r--generic/tclListTypes.c1
-rw-r--r--generic/tclNamesp.c22
-rw-r--r--generic/tclOOCall.c1
-rw-r--r--generic/tclObj.c1
-rw-r--r--generic/tclOptimize.c1
-rw-r--r--generic/tclParse.c112
-rw-r--r--generic/tclPathObj.c1
-rw-r--r--generic/tclProc.c1
-rw-r--r--generic/tclRegexp.c1
-rw-r--r--generic/tclResult.c1
-rw-r--r--generic/tclScan.c1
-rw-r--r--generic/tclStringObj.c2
-rw-r--r--generic/tclTestObj.c2
-rw-r--r--generic/tclUtil.c1
-rw-r--r--generic/tclZipfs.c2
-rw-r--r--unix/tclUnixThrd.c1
-rw-r--r--win/tclWinConsole.c1
-rw-r--r--win/tclWinInit.c1
-rw-r--r--win/tclWinThrd.c1
39 files changed, 110 insertions, 230 deletions
diff --git a/generic/tclArithSeries.c b/generic/tclArithSeries.c
index 11833d5..76d5c79 100755
--- a/generic/tclArithSeries.c
+++ b/generic/tclArithSeries.c
@@ -11,7 +11,6 @@
*/
#include "tclInt.h"
-#include <assert.h>
#include <math.h>
/*
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c
index 9c6ed6a..3da2b54 100644
--- a/generic/tclAssembly.c
+++ b/generic/tclAssembly.c
@@ -31,7 +31,6 @@
#include "tclInt.h"
#include "tclCompile.h"
#include "tclOOInt.h"
-#include <assert.h>
/*
* Structure that represents a range of instructions in the bytecode.
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 5d2dddb..ab287e3 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -22,7 +22,6 @@
#include "tclCompile.h"
#include "tclTomMath.h"
#include <math.h>
-#include <assert.h>
/*
* TCL_FPCLASSIFY_MODE:
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index f72c38f..503a30f 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -15,7 +15,6 @@
#include "tclTomMath.h"
#include <math.h>
-#include <assert.h>
/*
* The following constants are used by GetFormatSpec to indicate various
diff --git a/generic/tclCkalloc.c b/generic/tclCkalloc.c
index a391efd..6fa547d 100644
--- a/generic/tclCkalloc.c
+++ b/generic/tclCkalloc.c
@@ -16,7 +16,6 @@
*/
#include "tclInt.h"
-#include <assert.h>
#define FALSE 0
#define TRUE 1
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index f12a8b2..c09aefa 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -21,7 +21,6 @@
#include "tclRegexp.h"
#include "tclTomMath.h"
#include <math.h>
-#include <assert.h>
/*
* During execution of the "lsort" command, structures of the following type
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index cf074c5..361cd92 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -15,7 +15,6 @@
#include "tclInt.h"
#include "tclCompile.h"
-#include <assert.h>
/*
* Prototypes for procedures defined later in this file:
@@ -36,7 +35,7 @@ static int CompileEachloopCmd(Tcl_Interp *interp,
CompileEnv *envPtr, int collect);
static int CompileDictEachCmd(Tcl_Interp *interp,
Tcl_Parse *parsePtr, Command *cmdPtr,
- struct CompileEnv *envPtr, int collect);
+ CompileEnv *envPtr, int collect);
static inline void IssueDictWithEmpty(Tcl_Interp *interp,
Tcl_Size numWords, Tcl_Token *varTokenPtr,
CompileEnv *envPtr);
diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c
index c473f88..e3f0b70 100644
--- a/generic/tclCompCmdsGR.c
+++ b/generic/tclCompCmdsGR.c
@@ -16,7 +16,6 @@
#include "tclInt.h"
#include "tclCompile.h"
-#include <assert.h>
/*
* Prototypes for procedures defined later in this file:
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 3e6b75d..34f4dc2 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -15,7 +15,6 @@
#include "tclInt.h"
#define ALLOW_DEPRECATED_OPCODES
#include "tclCompile.h"
-#include <assert.h>
/*
* Variable that controls whether compilation tracing is enabled and, if so,
diff --git a/generic/tclDictObj.c b/generic/tclDictObj.c
index 44e4a2b..aded1c8 100644
--- a/generic/tclDictObj.c
+++ b/generic/tclDictObj.c
@@ -12,7 +12,6 @@
#include "tclInt.h"
#include "tclTomMath.h"
-#include <assert.h>
/*
* Forward declaration.
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c
index 5534b17..d05bbb8 100644
--- a/generic/tclDisassemble.c
+++ b/generic/tclDisassemble.c
@@ -16,7 +16,6 @@
#define ALLOW_DEPRECATED_OPCODES
#include "tclCompile.h"
#include "tclOOInt.h"
-#include <assert.h>
/*
* Prototypes for procedures defined later in this file:
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index c0f7de0..c4b8704 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -10,7 +10,6 @@
*/
#include "tclInt.h"
-#include <assert.h>
#include "../utf8proc/utf8proc.h" /* Relative path to ignore system include */
typedef size_t (LengthProc)(const char *src);
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index bc00d1b..2fa5d84 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -24,7 +24,6 @@
#include "tclOOInt.h"
#include "tclTomMath.h"
#include <math.h>
-#include <assert.h>
#if defined(__GNUC__) && (__GNUC__ > 4) && defined(_WIN32) && defined(TCL_COMPILE_DEBUG)
// These are FAR too noisy when we're using the MSVC runtime.
@@ -2102,6 +2101,16 @@ TclNRExecuteByteCode(
return TCL_OK;
}
+static inline Var *
+FollowLinks(
+ Var *varPtr)
+{
+ while (TclIsVarLink(varPtr)) {
+ varPtr = varPtr->value.linkPtr;
+ }
+ return varPtr;
+}
+
static int
TEBCresume(
void *data[],
@@ -2150,6 +2159,7 @@ TEBCresume(
#define LOCAL(i) (&compiledLocals[(i)])
#define TCONST(i) (constants[(i)])
+#define LOCALVAR(i) FollowLinks(LOCAL(i))
/*
* These macros are just meant to save some global variables that are not
@@ -3160,10 +3170,7 @@ TEBCresume(
case INST_LOAD_SCALAR1:
DEPRECATED_OPCODE_MARK(INST_LOAD_SCALAR1);
varIdx = TclGetUInt1AtPtr(pc + 1);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u => ", (unsigned) varIdx));
if (TclIsVarDirectReadable(varPtr)) {
/*
@@ -3184,10 +3191,7 @@ TEBCresume(
case INST_LOAD_SCALAR:
instLoadScalar:
varIdx = TclGetUInt4AtPtr(pc + 1);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u => ", (unsigned) varIdx));
if (TclIsVarDirectReadable(varPtr)) {
/*
@@ -3219,10 +3223,7 @@ TEBCresume(
#endif
part1Ptr = NULL;
part2Ptr = OBJ_AT_TOS;
- arrayPtr = LOCAL(varIdx);
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
+ arrayPtr = LOCALVAR(varIdx);
TRACE(("%u \"%.30s\" => ", (unsigned) varIdx, O2S(part2Ptr)));
if (TclIsVarArray(arrayPtr) && !ReadTraced(arrayPtr)) {
varPtr = VarHashFindVar(arrayPtr->value.tablePtr, part2Ptr);
@@ -3332,12 +3333,9 @@ TEBCresume(
#endif
valuePtr = OBJ_AT_TOS;
part2Ptr = OBJ_UNDER_TOS;
- arrayPtr = LOCAL(varIdx);
+ arrayPtr = LOCALVAR(varIdx);
TRACE(("%u \"%.30s\" <- \"%.30s\" => ", (unsigned) varIdx, O2S(part2Ptr),
O2S(valuePtr)));
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
if (TclIsVarArray(arrayPtr) && !WriteTraced(arrayPtr)) {
varPtr = VarHashFindVar(arrayPtr->value.tablePtr, part2Ptr);
if (varPtr && TclIsVarDirectWritable(varPtr)) {
@@ -3368,11 +3366,8 @@ TEBCresume(
doStoreScalarDirect:
#endif
valuePtr = OBJ_AT_TOS;
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u <- \"%.30s\" => ", (unsigned) varIdx, O2S(valuePtr)));
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
if (!TclIsVarDirectWritable(varPtr)) {
storeFlags = TCL_LEAVE_ERR_MSG;
part1Ptr = NULL;
@@ -3501,12 +3496,9 @@ TEBCresume(
doStoreArray:
valuePtr = OBJ_AT_TOS;
part2Ptr = OBJ_UNDER_TOS;
- arrayPtr = LOCAL(varIdx);
+ arrayPtr = LOCALVAR(varIdx);
TRACE(("%u \"%.30s\" <- \"%.30s\" => ", (unsigned) varIdx, O2S(part2Ptr),
O2S(valuePtr)));
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
cleanup = 2;
part1Ptr = NULL;
@@ -3553,11 +3545,8 @@ TEBCresume(
doStoreScalar:
valuePtr = OBJ_AT_TOS;
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u <- \"%.30s\" => ", (unsigned) varIdx, O2S(valuePtr)));
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
cleanup = 1;
arrayPtr = NULL;
part1Ptr = part2Ptr = NULL;
@@ -3582,12 +3571,9 @@ TEBCresume(
case INST_LAPPEND_LIST:
varIdx = TclGetUInt4AtPtr(pc + 1);
valuePtr = OBJ_AT_TOS;
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
cleanup = 1;
pcAdjustment = 5;
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
TRACE(("%u <- \"%.30s\" => ", (unsigned) varIdx, O2S(valuePtr)));
if (TclListObjGetElements(interp, valuePtr, &objc, &objv)
!= TCL_OK) {
@@ -3607,12 +3593,9 @@ TEBCresume(
valuePtr = OBJ_AT_TOS;
part1Ptr = NULL;
part2Ptr = OBJ_UNDER_TOS;
- arrayPtr = LOCAL(varIdx);
+ arrayPtr = LOCALVAR(varIdx);
cleanup = 2;
pcAdjustment = 5;
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
TRACE(("%u \"%.30s\" \"%.30s\" => ",
(unsigned) varIdx, O2S(part2Ptr), O2S(valuePtr)));
if (TclListObjGetElements(interp, valuePtr, &objc, &objv)
@@ -3868,11 +3851,8 @@ TEBCresume(
doIncrArray:
part1Ptr = NULL;
part2Ptr = OBJ_AT_TOS;
- arrayPtr = LOCAL(varIdx);
+ arrayPtr = LOCALVAR(varIdx);
cleanup = 1;
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
TRACE(("%u \"%.30s\" (by %ld) => ", (unsigned) varIdx, O2S(part2Ptr),
increment));
varPtr = TclLookupArrayElement(interp, part1Ptr, part2Ptr,
@@ -3900,10 +3880,7 @@ TEBCresume(
doIncrScalarImm:
#endif
cleanup = 0;
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
if (TclIsVarDirectModifyable(varPtr)) {
void *ptr;
@@ -3981,10 +3958,7 @@ TEBCresume(
Tcl_IncrRefCount(incrPtr);
doIncrScalar:
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
arrayPtr = NULL;
part1Ptr = part2Ptr = NULL;
cleanup = 0;
@@ -4038,10 +4012,7 @@ TEBCresume(
cleanup = 0;
pcAdjustment = 5;
varIdx = TclGetUInt4AtPtr(pc + 1);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u => ", (unsigned) varIdx));
if (ReadTraced(varPtr)) {
DECACHE_STACK_INFO();
@@ -4060,10 +4031,7 @@ TEBCresume(
pcAdjustment = 5;
varIdx = TclGetUInt4AtPtr(pc + 1);
part2Ptr = OBJ_AT_TOS;
- arrayPtr = LOCAL(varIdx);
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
+ arrayPtr = LOCALVAR(varIdx);
TRACE(("%u \"%.30s\" => ", (unsigned)varIdx, O2S(part2Ptr)));
if (TclIsVarArray(arrayPtr) && !ReadTraced(arrayPtr)) {
varPtr = VarHashFindVar(arrayPtr->value.tablePtr, part2Ptr);
@@ -4141,10 +4109,7 @@ TEBCresume(
case INST_UNSET_SCALAR:
flags = TclGetUInt1AtPtr(pc + 1) ? TCL_LEAVE_ERR_MSG : 0;
varIdx = TclGetUInt4AtPtr(pc + 2);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%s %u => ", (flags ? "normal" : "noerr"), (unsigned)varIdx));
if (TclIsVarDirectUnsettable(varPtr) && !TclIsVarInHash(varPtr)) {
/*
@@ -4175,10 +4140,7 @@ TEBCresume(
flags = TclGetUInt1AtPtr(pc + 1) ? TCL_LEAVE_ERR_MSG : 0;
varIdx = TclGetUInt4AtPtr(pc + 2);
part2Ptr = OBJ_AT_TOS;
- arrayPtr = LOCAL(varIdx);
- while (TclIsVarLink(arrayPtr)) {
- arrayPtr = arrayPtr->value.linkPtr;
- }
+ arrayPtr = LOCALVAR(varIdx);
TRACE(("%s %u \"%.30s\" => ",
(flags ? "normal" : "noerr"), (unsigned)varIdx, O2S(part2Ptr)));
if (TclIsVarArray(arrayPtr) && !UnsetTraced(arrayPtr)
@@ -4272,11 +4234,8 @@ TEBCresume(
part1Ptr = NULL;
objPtr = OBJ_AT_TOS;
TRACE(("%u \"%.30s\" => \n", (unsigned) varIdx, O2S(objPtr)));
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
arrayPtr = NULL;
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
goto doConst;
case INST_CONST_STK:
varIdx = -1;
@@ -4341,10 +4300,7 @@ TEBCresume(
part1Ptr = NULL;
arrayPtr = NULL;
TRACE(("%u => ", (unsigned)varIdx));
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
goto doArrayExists;
case INST_ARRAY_EXISTS_STK:
varIdx = -1;
@@ -4377,10 +4333,7 @@ TEBCresume(
part1Ptr = NULL;
arrayPtr = NULL;
TRACE(("%u => ", (unsigned)varIdx));
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
goto doArrayMake;
case INST_ARRAY_MAKE_STK:
varIdx = -1;
@@ -6967,10 +6920,7 @@ TEBCresume(
}
varIndex = varListPtr->varIndexes[j];
- varPtr = LOCAL(varIndex);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIndex);
if (TclIsVarDirectWritable(varPtr)) {
value2Ptr = varPtr->value.objPtr;
if (valuePtr != value2Ptr) {
@@ -7312,10 +7262,7 @@ TEBCresume(
numArgs = TclGetUInt4AtPtr(pc + 1);
varIdx = TclGetUInt4AtPtr(pc + 5);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u %u => ", (unsigned)numArgs, (unsigned)varIdx));
if (TclIsVarDirectReadable(varPtr)) {
dictPtr = varPtr->value.objPtr;
@@ -7415,10 +7362,7 @@ TEBCresume(
case INST_DICT_APPEND:
case INST_DICT_LAPPEND:
varIdx = TclGetUInt4AtPtr(pc + 1);
- varPtr = LOCAL(varIdx);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u => ", (unsigned)varIdx));
if (TclIsVarDirectReadable(varPtr)) {
dictPtr = varPtr->value.objPtr;
@@ -7569,6 +7513,7 @@ TEBCresume(
ir.twoPtrValue.ptr2 = dictPtr;
Tcl_StoreInternalRep(statePtr, &dictIteratorType, &ir);
}
+ // Special var; never linked
varPtr = LOCAL(varIdx);
if (varPtr->value.objPtr) {
if (TclHasInternalRep(varPtr->value.objPtr, &dictIteratorType)) {
@@ -7584,6 +7529,7 @@ TEBCresume(
case INST_DICT_NEXT:
varIdx = TclGetUInt4AtPtr(pc + 1);
TRACE(("%u => ", (unsigned)varIdx));
+ // Special var; never linked
statePtr = (*LOCAL(varIdx)).value.objPtr;
{
const Tcl_ObjInternalRep *irPtr;
@@ -7622,11 +7568,8 @@ TEBCresume(
varIdx = TclGetUInt4AtPtr(pc + 1);
tblIdx = TclGetUInt4AtPtr(pc + 5);
TRACE(("%u %u => ", (unsigned)varIdx, tblIdx));
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
duiPtr = (DictUpdateInfo *)codePtr->auxDataArrayPtr[tblIdx].clientData;
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
if (TclIsVarDirectReadable(varPtr)) {
dictPtr = varPtr->value.objPtr;
} else {
@@ -7656,10 +7599,7 @@ TEBCresume(
Tcl_DecrRefCount(dictPtr);
goto gotError;
}
- varPtr = LOCAL(duiPtr->varIndices[i]);
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
+ varPtr = LOCALVAR(duiPtr->varIndices[i]);
DECACHE_STACK_INFO();
if (valuePtr == NULL) {
TclObjUnsetVar2(interp,
@@ -7683,11 +7623,8 @@ TEBCresume(
varIdx = TclGetUInt4AtPtr(pc + 1);
tblIdx = TclGetUInt4AtPtr(pc + 5);
TRACE(("%u %u => ", (unsigned)varIdx, tblIdx));
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
duiPtr = (DictUpdateInfo *)codePtr->auxDataArrayPtr[tblIdx].clientData;
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
if (TclIsVarDirectReadable(varPtr)) {
dictPtr = varPtr->value.objPtr;
} else {
@@ -7714,11 +7651,9 @@ TEBCresume(
TclInvalidateStringRep(dictPtr);
}
for (i=0 ; i<length ; i++) {
- Var *var2Ptr = LOCAL(duiPtr->varIndices[i]);
+ Var *var2Ptr;
- while (TclIsVarLink(var2Ptr)) {
- var2Ptr = var2Ptr->value.linkPtr;
- }
+ var2Ptr = LOCALVAR(duiPtr->varIndices[i]);
if (TclIsVarDirectReadable(var2Ptr)) {
valuePtr = var2Ptr->value.objPtr;
} else {
@@ -7806,16 +7741,13 @@ TEBCresume(
varIdx = TclGetUInt4AtPtr(pc + 1);
listPtr = OBJ_UNDER_TOS;
keysPtr = OBJ_AT_TOS;
- varPtr = LOCAL(varIdx);
+ varPtr = LOCALVAR(varIdx);
TRACE(("%u <- \"%.30s\" \"%.30s\" => ", (unsigned)varIdx, O2S(valuePtr),
O2S(keysPtr)));
if (TclListObjGetElements(interp, listPtr, &objc, &objv) != TCL_OK) {
TRACE_ERROR(interp);
goto gotError;
}
- while (TclIsVarLink(varPtr)) {
- varPtr = varPtr->value.linkPtr;
- }
DECACHE_STACK_INFO();
result = TclDictWithFinish(interp, varPtr, NULL, NULL, NULL, varIdx,
objc, objv, keysPtr);
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 6ea74c6..1fc44df 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -14,7 +14,6 @@
#include "tclInt.h"
#include "tclIO.h"
-#include <assert.h>
/*
* For each channel handler registered in a call to Tcl_CreateChannelHandler,
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index 267510b..521f30f 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -18,7 +18,6 @@
#include "tclInt.h"
#include "tclIO.h"
-#include <assert.h>
#ifndef EINVAL
#define EINVAL 9
diff --git a/generic/tclIORTrans.c b/generic/tclIORTrans.c
index 7630448..b5ae242 100644
--- a/generic/tclIORTrans.c
+++ b/generic/tclIORTrans.c
@@ -18,7 +18,6 @@
#include "tclInt.h"
#include "tclIO.h"
-#include <assert.h>
#ifndef EINVAL
#define EINVAL 9
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index db8a664..e1db374 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -555,7 +555,7 @@ declare 239 {
}
declare 240 {
int TclNRRunCallbacks(Tcl_Interp *interp, int result,
- struct NRE_callback *rootPtr)
+ NRE_callback *rootPtr)
}
declare 241 {
int TclNREvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags,
diff --git a/generic/tclInt.h b/generic/tclInt.h
index e356a17..0c4802d 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -63,12 +63,14 @@
#include "tclPort.h"
#include <stdio.h>
-
+#include <assert.h>
#include <ctype.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdint.h>
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ < 202311L
#include <stdbool.h>
+#endif
#include <string.h>
#include <locale.h>
@@ -3480,7 +3482,7 @@ MODULE_SCOPE void TclInitNamespaceSubsystem(void);
MODULE_SCOPE void TclInitNotifier(void);
MODULE_SCOPE void TclInitObjSubsystem(void);
MODULE_SCOPE int TclInterpReady(Tcl_Interp *interp);
-MODULE_SCOPE int TclIsBareword(int byte);
+MODULE_SCOPE bool TclIsBareword(int byte);
MODULE_SCOPE Tcl_Obj * TclJoinPath(Tcl_Size elements, Tcl_Obj * const objv[],
int forceRelative);
MODULE_SCOPE Tcl_Obj * TclGetHomeDirObj(Tcl_Interp *interp, const char *user);
@@ -3536,9 +3538,6 @@ MODULE_SCOPE int TclParseNumber(Tcl_Interp *interp, Tcl_Obj *objPtr,
Tcl_Size numBytes, const char **endPtrPtr, int flags);
MODULE_SCOPE void TclParseInit(Tcl_Interp *interp, const char *string,
Tcl_Size numBytes, Tcl_Parse *parsePtr);
-MODULE_SCOPE int TclParseExprSubst(Tcl_Interp *interp,
- const char *start, Tcl_Size numBytes,
- Tcl_Parse *parsePtr, int append);
MODULE_SCOPE Tcl_Size TclParseAllWhiteSpace(const char *src, Tcl_Size numBytes);
MODULE_SCOPE int TclProcessReturn(Tcl_Interp *interp,
int code, int level, Tcl_Obj *returnOpts);
@@ -3733,7 +3732,7 @@ MODULE_SCOPE void TclSetObjNameOfShlib(Tcl_Obj *namePtr, Tcl_Encoding);
* optimization (fragile on changes) in one place.
*/
-MODULE_SCOPE int TclIsSpaceProc(int byte);
+MODULE_SCOPE bool TclIsSpaceProc(int byte);
#define TclIsSpaceProcM(byte) \
(((unsigned)(byte) > 0x20) ? 0 : TclIsSpaceProc(byte))
@@ -5091,7 +5090,6 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
void Tcl_Panic(const char *, ...) __attribute__((analyzer_noreturn));
#endif
#if !defined(CLANG_ASSERT)
-#include <assert.h>
#define CLANG_ASSERT(x) assert(x)
#endif
#elif !defined(CLANG_ASSERT)
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 232e987..e5050ea 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -508,7 +508,7 @@ EXTERN int TclNRInterpProcCore(Tcl_Interp *interp,
ProcErrorProc *errorProc);
/* 240 */
EXTERN int TclNRRunCallbacks(Tcl_Interp *interp, int result,
- struct NRE_callback *rootPtr);
+ NRE_callback *rootPtr);
/* 241 */
EXTERN int TclNREvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr,
int flags, const CmdFrame *invoker, int word);
@@ -820,7 +820,7 @@ typedef struct TclIntStubs {
int (*tclResetCancellation) (Tcl_Interp *interp, int force); /* 237 */
int (*tclNRInterpProc) (void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); /* 238 */
int (*tclNRInterpProcCore) (Tcl_Interp *interp, Tcl_Obj *procNameObj, Tcl_Size skip, ProcErrorProc *errorProc); /* 239 */
- int (*tclNRRunCallbacks) (Tcl_Interp *interp, int result, struct NRE_callback *rootPtr); /* 240 */
+ int (*tclNRRunCallbacks) (Tcl_Interp *interp, int result, NRE_callback *rootPtr); /* 240 */
int (*tclNREvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags, const CmdFrame *invoker, int word); /* 241 */
int (*tclNREvalObjv) (Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], int flags, Command *cmdPtr); /* 242 */
void (*tclDbDumpActiveObjects) (FILE *outFile); /* 243 */
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 54eac09..29fdb9f 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -9,7 +9,6 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-#include <assert.h>
#include "tclInt.h"
#include "tclTomMath.h"
diff --git a/generic/tclListTypes.c b/generic/tclListTypes.c
index 0ae4563..bd16946 100644
--- a/generic/tclListTypes.c
+++ b/generic/tclListTypes.c
@@ -10,7 +10,6 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-#include <assert.h>
#include "tclInt.h"
/*
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 49745e6..febad5e 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -25,7 +25,6 @@
#include "tclInt.h"
#include "tclCompile.h" /* for TclLogCommandInfo visibility */
-#include <assert.h>
/*
* Thread-local storage used to avoid having a global lock on data that is not
@@ -143,14 +142,14 @@ static const Tcl_ObjType nsNameType = {
ir.twoPtrValue.ptr1 = (nnPtr); \
ir.twoPtrValue.ptr2 = NULL; \
Tcl_StoreInternalRep((objPtr), &nsNameType, &ir); \
- } while (0)
+ } while (false)
#define NsNameGetInternalRep(objPtr, nnPtr) \
do { \
const Tcl_ObjInternalRep *irPtr; \
irPtr = TclFetchInternalRep((objPtr), &nsNameType); \
(nnPtr) = irPtr ? (ResolvedNsName *) irPtr->twoPtrValue.ptr1 : NULL; \
- } while (0)
+ } while (false)
/*
* Array of values describing how to implement each standard subcommand of the
@@ -1188,7 +1187,7 @@ TclDeleteNamespaceChildren(
Tcl_Interp *interp = nsPtr->interp;
Tcl_HashEntry *entryPtr;
size_t i;
- int unchecked;
+ bool unchecked;
Tcl_HashSearch search;
/*
@@ -1218,10 +1217,10 @@ TclDeleteNamespaceChildren(
children[i]->refCount++;
i++;
}
- unchecked = 0;
+ unchecked = false;
for (i = 0 ; i < length ; i++) {
if (!(children[i]->flags & NS_DYING)) {
- unchecked = 1;
+ unchecked = true;
Tcl_DeleteNamespace((Tcl_Namespace *) children[i]);
TclNsDecrRefCount(children[i]);
}
@@ -2839,7 +2838,8 @@ TclResetShadowedCmdRefs(
Namespace *nsPtr;
Namespace *trailNsPtr, *shadowNsPtr;
Namespace *globalNsPtr = (Namespace *) TclGetGlobalNamespace(interp);
- int found, i;
+ int i;
+ bool found;
int trailFront = -1;
int trailSize = 5; /* Formerly NUM_TRAIL_ELEMS. */
Namespace **trailPtr = (Namespace **) TclStackAlloc(interp,
@@ -2875,7 +2875,7 @@ TclResetShadowedCmdRefs(
* contains a command cmdName.
*/
- found = 1;
+ found = true;
shadowNsPtr = globalNsPtr;
for (i = trailFront; i >= 0; i--) {
@@ -2884,7 +2884,7 @@ TclResetShadowedCmdRefs(
if (hPtr != NULL) {
shadowNsPtr = (Namespace *) Tcl_GetHashValue(hPtr);
} else {
- found = 0;
+ found = false;
break;
}
}
@@ -3807,7 +3807,7 @@ NamespaceImportCmd(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- int allowOverwrite = 0;
+ bool allowOverwrite = false;
const char *string, *pattern;
int i, firstArg;
int result;
@@ -3825,7 +3825,7 @@ NamespaceImportCmd(
if (firstArg < objc) {
string = TclGetString(objv[firstArg]);
if ((*string == '-') && (strcmp(string, "-force") == 0)) {
- allowOverwrite = 1;
+ allowOverwrite = true;
firstArg++;
}
} else {
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index 7000877..4e56a5c 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -16,7 +16,6 @@
#endif
#include "tclInt.h"
#include "tclOOInt.h"
-#include <assert.h>
/*
* Structure containing a CallChain and any other values needed only during
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 4a2d44d..4b9595b 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -17,7 +17,6 @@
#include "tclInt.h"
#include "tclTomMath.h"
#include <math.h>
-#include <assert.h>
/*
* Table of all object types.
diff --git a/generic/tclOptimize.c b/generic/tclOptimize.c
index 0ff20f9..a65c7f9 100644
--- a/generic/tclOptimize.c
+++ b/generic/tclOptimize.c
@@ -12,7 +12,6 @@
#include "tclInt.h"
#define ALLOW_DEPRECATED_OPCODES
#include "tclCompile.h"
-#include <assert.h>
/*
* Forward declarations.
diff --git a/generic/tclParse.c b/generic/tclParse.c
index 24c20f8..fd49897 100644
--- a/generic/tclParse.c
+++ b/generic/tclParse.c
@@ -15,7 +15,6 @@
#include "tclInt.h"
#include "tclParse.h"
-#include <assert.h>
/*
* The following table provides parsing information about each possible 8-bit
@@ -140,17 +139,19 @@ const unsigned char tclCharTypeTable[] = {
* Prototypes for local functions defined in this file:
*/
-static int CommandComplete(const char *script, Tcl_Size numBytes);
+static bool CommandComplete(const char *script, Tcl_Size numBytes);
static Tcl_Size ParseComment(const char *src, Tcl_Size numBytes,
Tcl_Parse *parsePtr);
static int ParseTokens(const char *src, Tcl_Size numBytes, int mask,
int flags, Tcl_Parse *parsePtr);
static Tcl_Size ParseWhiteSpace(const char *src, Tcl_Size numBytes,
- int *incompletePtr, char *typePtr);
+ int *incompletePtr, unsigned char *typePtr);
static Tcl_Size ParseAllWhiteSpace(const char *src, Tcl_Size numBytes,
int *incompletePtr);
static Tcl_Size ParseHex(const char *src, Tcl_Size numBytes,
int *resultPtr);
+static int ParseExprSubst(const char *start, Tcl_Size numBytes,
+ Tcl_Parse *parsePtr);
/*
*----------------------------------------------------------------------
@@ -231,7 +232,7 @@ Tcl_ParseCommand(
{
const char *src; /* Points to current character in the
* command. */
- char type; /* Result returned by CHAR_TYPE(*src). */
+ unsigned char type; /* Result returned by CHAR_TYPE(*src). */
Tcl_Token *tokenPtr; /* Pointer to token being filled in. */
Tcl_Size wordIndex; /* Index of word token for current word. */
int terminators; /* CHAR_TYPE bits that indicate the end of a
@@ -283,8 +284,8 @@ Tcl_ParseCommand(
parsePtr->commandStart = src;
type = CHAR_TYPE(*src);
scanned = 1; /* Can't have missing whitepsace before first word. */
- while (1) {
- int expandWord = 0;
+ while (true) {
+ bool expandWord = false;
/* Are we at command termination? */
@@ -362,7 +363,7 @@ Tcl_ParseCommand(
*/
expPtr = &parsePtr->tokenPtr[expIdx];
- if ((0 == expandWord)
+ if (!expandWord
/* Haven't seen prefix already */
&& (expIdx + 1 == parsePtr->numTokens)
/* Only one token */
@@ -374,7 +375,7 @@ Tcl_ParseCommand(
numBytes, &parsePtr->incomplete, &type))
&& (type != TYPE_COMMAND_END)
/* Non-whitespace follows */) {
- expandWord = 1;
+ expandWord = true;
parsePtr->numTokens--;
goto parseWord;
}
@@ -402,7 +403,7 @@ Tcl_ParseCommand(
tokenPtr->numComponents = parsePtr->numTokens - (wordIndex + 1);
if (expandWord) {
Tcl_Size i;
- int isLiteral = 1;
+ bool isLiteral = true;
/*
* When a command includes a word that is an expanded literal; for
@@ -420,7 +421,7 @@ Tcl_ParseCommand(
for (i = 1; i <= tokenPtr->numComponents; i++) {
if (tokenPtr[i].type != TCL_TOKEN_TEXT) {
- isLiteral = 0;
+ isLiteral = false;
break;
}
}
@@ -573,11 +574,11 @@ Tcl_ParseCommand(
*----------------------------------------------------------------------
*/
-int
+bool
TclIsSpaceProc(
int byte)
{
- return CHAR_TYPE(byte) & (TYPE_SPACE) || byte == '\n';
+ return (CHAR_TYPE(byte) & TYPE_SPACE) || (byte == '\n');
}
/*
@@ -594,7 +595,7 @@ TclIsSpaceProc(
* the alphabetic chars ('a'-'z', 'A'-'Z') and underscore ('_').
*
* Results:
- * Returns 1, if byte is in the accepted set of chars, 0 otherwise.
+ * Returns true if byte is in the accepted set of chars, false otherwise.
*
* Side effects:
* None.
@@ -602,23 +603,23 @@ TclIsSpaceProc(
*----------------------------------------------------------------------
*/
-int
+bool
TclIsBareword(
int byte)
{
if (byte < '0' || byte > 'z') {
- return 0;
+ return false;
}
if (byte <= '9' || byte >= 'a') {
- return 1;
+ return true;
}
if (byte == '_') {
- return 1;
+ return true;
}
if (byte < 'A' || byte > 'Z') {
- return 0;
+ return false;
}
- return 1;
+ return true;
}
/*
@@ -647,13 +648,13 @@ ParseWhiteSpace(
Tcl_Size numBytes, /* Max number of bytes to scan. */
int *incompletePtr, /* Set this boolean memory to true if parsing
* indicates an incomplete command. */
- char *typePtr) /* Points to location to store character type
+ unsigned char *typePtr) /* Points to location to store character type
* of character that ends run of whitespace */
{
- char type = TYPE_NORMAL;
+ unsigned char type = TYPE_NORMAL;
const char *p = src;
- while (1) {
+ while (true) {
while (numBytes && ((type = CHAR_TYPE(*p)) & TYPE_SPACE)) {
numBytes--;
p++;
@@ -701,7 +702,7 @@ ParseAllWhiteSpace(
Tcl_Size numBytes, /* Max number of byes to scan */
int *incompletePtr) /* Set true if parse is incomplete. */
{
- char type;
+ unsigned char type;
const char *p = src;
do {
@@ -1021,7 +1022,7 @@ ParseComment(
break;
}
}
- incomplete = (*p == '\n');
+ incomplete = (*p == '\n') ? 1 : 0;
p++;
numBytes--;
}
@@ -1072,12 +1073,8 @@ ParseTokens(
* Updated with additional tokens and
* termination information. */
{
- char type;
+ unsigned char type;
Tcl_Size originalTokens;
- int noSubstCmds = !(flags & TCL_SUBST_COMMANDS);
- int noSubstExprs = !(flags & TCL_SUBST_EXPRS);
- int noSubstVars = !(flags & TCL_SUBST_VARIABLES);
- int noSubstBS = !(flags & TCL_SUBST_BACKSLASHES);
Tcl_Token *tokenPtr;
/*
@@ -1109,24 +1106,24 @@ ParseTokens(
parsePtr->numTokens++;
} else if (*src == '$') {
Tcl_Size varToken = parsePtr->numTokens;
- if (!noSubstExprs && (numBytes > 1 && src[1] == EXPR_TRIGGER_CHAR
+ if ((flags & TCL_SUBST_EXPRS) && (numBytes > 1) && (src[1] == EXPR_TRIGGER_CHAR)
#if EXPR_SUBST_MODE > 1
- && numBytes > 2 && src[2] == '('
+ && (numBytes > 2) && (src[2] == '(')
#endif
- )) {
+ ) {
// For $(expr), the COMMAND token has synthetic string length
// but we need to advance by original $(...) length
// Mode 1: "[expr {" (7) + "}]" (2) - "$(" (2) - ")" (1) = 6
// Mode 2: "[expr {" (7) + "}]" (2) - "$=(" (3) - ")" (1) = 5
// Mode 3: "[expr {" (7) + "}]" (2) - "$((" (3) - "))" (2) = 4
- if (TclParseExprSubst(parsePtr->interp, src, numBytes, parsePtr, 1) != TCL_OK) {
+ if (ParseExprSubst(src, numBytes, parsePtr) != TCL_OK) {
return TCL_ERROR;
}
Tcl_Size syntheticSize = parsePtr->tokenPtr[varToken].size;
Tcl_Size originalSize = syntheticSize - EXPR_SIZE_DIFF;
src += originalSize;
numBytes -= originalSize;
- } else if (!noSubstVars) {
+ } else if ((flags & TCL_SUBST_VARIABLES) != 0) {
// Normal variable substitution
if (Tcl_ParseVarName(parsePtr->interp, src, numBytes, parsePtr, 1) != TCL_OK) {
return TCL_ERROR;
@@ -1143,7 +1140,7 @@ ParseTokens(
} else if (*src == '[') {
Tcl_Parse *nestedPtr;
- if (noSubstCmds) {
+ if (!(flags & TCL_SUBST_COMMANDS)) {
tokenPtr->type = TCL_TOKEN_TEXT;
tokenPtr->size = 1;
parsePtr->numTokens++;
@@ -1161,7 +1158,7 @@ ParseTokens(
src++;
numBytes--;
nestedPtr = (Tcl_Parse *)TclStackAlloc(parsePtr->interp, sizeof(Tcl_Parse));
- while (1) {
+ while (true) {
const char *curEnd;
if (Tcl_ParseCommand(parsePtr->interp, src, numBytes, 1,
@@ -1205,7 +1202,7 @@ ParseTokens(
tokenPtr->size = src - tokenPtr->start;
parsePtr->numTokens++;
} else if (*src == '\\') {
- if (noSubstBS) {
+ if (!(flags & TCL_SUBST_BACKSLASHES)) {
tokenPtr->type = TCL_TOKEN_TEXT;
tokenPtr->size = 1;
parsePtr->numTokens++;
@@ -1543,20 +1540,14 @@ Tcl_ParseVarName(
}
int
-TclParseExprSubst(
- Tcl_Interp *interp, /* Interpreter to use for error reporting; if
- * NULL, then no error message is provided. */
+ParseExprSubst(
const char *start, /* Start of variable substitution string.
* First character must be "$". */
Tcl_Size numBytes, /* Total number of bytes in string. If -1,
* the string consists of all bytes up to the
* first null character. */
- Tcl_Parse *parsePtr, /* Structure to fill in with information about
+ Tcl_Parse *parsePtr) /* Structure to fill in with information about
* the variable name. */
- int append) /* Non-zero means append tokens to existing
- * information in parsePtr; zero means ignore
- * existing tokens in parsePtr and
- * reinitialize it. */
{
Tcl_Token *tokenPtr;
const char *src;
@@ -1565,9 +1556,6 @@ TclParseExprSubst(
if (numBytes < 0 && start) {
numBytes = strlen(start);
}
- if (!append) {
- TclParseInit(interp, start, numBytes, parsePtr);
- }
if ((numBytes == 0) || (start == NULL)) {
return TCL_ERROR;
}
@@ -1850,7 +1838,7 @@ Tcl_ParseBraces(
tokenPtr->start = src+1;
tokenPtr->numComponents = 0;
level = 1;
- while (1) {
+ while (true) {
while (++src, --numBytes) {
if (CHAR_TYPE(*src) != TYPE_NORMAL) {
break;
@@ -1953,15 +1941,15 @@ Tcl_ParseBraces(
*/
{
- int openBrace = 0;
+ bool openBrace = false;
while (--src > start) {
switch (*src) {
case '{':
- openBrace = 1;
+ openBrace = true;
break;
case '\n':
- openBrace = 0;
+ openBrace = false;
break;
case '#' :
if (openBrace && TclIsSpaceProcM(src[-1])) {
@@ -2319,7 +2307,7 @@ TclSubstTokens(
Tcl_Obj *result;
int code = TCL_OK;
#define NUM_STATIC_POS 20
- int isLiteral;
+ bool isLiteral;
Tcl_Size i, maxNumCL, numCL, adjust;
Tcl_Size *clPosition = NULL;
Interp *iPtr = (Interp *) interp;
@@ -2345,11 +2333,11 @@ TclSubstTokens(
numCL = 0;
maxNumCL = 0;
- isLiteral = 1;
+ isLiteral = true;
for (i=0 ; i < count; i++) {
if ((tokenPtr[i].type != TCL_TOKEN_TEXT)
&& (tokenPtr[i].type != TCL_TOKEN_BS)) {
- isLiteral = 0;
+ isLiteral = false;
break;
}
}
@@ -2589,8 +2577,8 @@ TclSubstTokens(
* script is complete
*
* Results:
- * 1 is returned if the script is complete, 0 if there are open
- * delimiters such as " or (. 1 is also returned if there is a parse
+ * true is returned if the script is complete, false if there are open
+ * delimiters such as " or (. true is also returned if there is a parse
* error in the script other than unmatched delimiters.
*
* Side effects:
@@ -2599,14 +2587,14 @@ TclSubstTokens(
*----------------------------------------------------------------------
*/
-static int
+static bool
CommandComplete(
const char *script, /* Script to check. */
Tcl_Size numBytes) /* Number of bytes in script. */
{
Tcl_Parse parse;
const char *p, *end;
- int result;
+ bool result;
p = script;
end = p + numBytes;
@@ -2617,11 +2605,7 @@ CommandComplete(
}
Tcl_FreeParse(&parse);
}
- if (parse.incomplete) {
- result = 0;
- } else {
- result = 1;
- }
+ result = !parse.incomplete;
Tcl_FreeParse(&parse);
return result;
}
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index be6df77..a46b7a3 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -13,7 +13,6 @@
#include "tclInt.h"
#include "tclFileSystem.h"
-#include <assert.h>
/*
* Prototypes for functions defined later in this file.
diff --git a/generic/tclProc.c b/generic/tclProc.c
index 2374516..63b07e7 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -15,7 +15,6 @@
#include "tclInt.h"
#include "tclCompile.h"
-#include <assert.h>
/*
* Variables that are part of the [apply] command implementation and which
diff --git a/generic/tclRegexp.c b/generic/tclRegexp.c
index 79a7490..573dbe7 100644
--- a/generic/tclRegexp.c
+++ b/generic/tclRegexp.c
@@ -14,7 +14,6 @@
#include "tclInt.h"
#include "tclRegexp.h"
#include "tclTomMath.h"
-#include <assert.h>
/*
*----------------------------------------------------------------------
diff --git a/generic/tclResult.c b/generic/tclResult.c
index 3be57e0..7c43b01 100644
--- a/generic/tclResult.c
+++ b/generic/tclResult.c
@@ -10,7 +10,6 @@
*/
#include "tclInt.h"
-#include <assert.h>
/*
* Indices of the standard return options dictionary keys.
diff --git a/generic/tclScan.c b/generic/tclScan.c
index feddedc..a4502b9 100644
--- a/generic/tclScan.c
+++ b/generic/tclScan.c
@@ -11,7 +11,6 @@
#include "tclInt.h"
#include "tclTomMath.h"
-#include <assert.h>
/*
* Flag values used by Tcl_ScanObjCmd.
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index ac16760..305f969 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -35,7 +35,7 @@
#include "tclInt.h"
#include "tclTomMath.h"
#include "tclStringRep.h"
-#include <assert.h>
+
/*
* Prototypes for functions defined later in this file:
*/
diff --git a/generic/tclTestObj.c b/generic/tclTestObj.c
index 1ca9cf5..47807b8 100644
--- a/generic/tclTestObj.c
+++ b/generic/tclTestObj.c
@@ -27,8 +27,6 @@
#endif
#include "tclStringRep.h"
-#include <assert.h>
-
/*
* Forward declarations for functions defined later in this file:
*/
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index b20fec7..5920d89 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -12,7 +12,6 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-#include <assert.h>
#include "tclInt.h"
#include "tclParse.h"
#include "tclStringTrim.h"
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c
index 4c97468..5eb5fe9 100644
--- a/generic/tclZipfs.c
+++ b/generic/tclZipfs.c
@@ -23,8 +23,6 @@
#include "tclInt.h"
#include "tclFileSystem.h"
-#include <assert.h>
-
#ifdef _WIN32
# if defined(_WIN32) && defined (__clang__) && (__clang_major__ > 20)
# pragma clang diagnostic ignored "-Wc++-keyword"
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c
index b8c7768..292135d 100644
--- a/unix/tclUnixThrd.c
+++ b/unix/tclUnixThrd.c
@@ -12,7 +12,6 @@
*/
#include "tclInt.h"
-#include <assert.h>
#if TCL_THREADS
diff --git a/win/tclWinConsole.c b/win/tclWinConsole.c
index ec6d170..d29c194 100644
--- a/win/tclWinConsole.c
+++ b/win/tclWinConsole.c
@@ -15,7 +15,6 @@
#endif
#include "tclWinInt.h"
-#include <assert.h>
#include <ctype.h>
/*
diff --git a/win/tclWinInit.c b/win/tclWinInit.c
index 7ce69e3..8d7610d 100644
--- a/win/tclWinInit.c
+++ b/win/tclWinInit.c
@@ -12,7 +12,6 @@
*/
#include "tclWinInt.h"
-#include <assert.h>
#include <winnt.h>
#include <winbase.h>
#include <lmcons.h>
diff --git a/win/tclWinThrd.c b/win/tclWinThrd.c
index 3fd86cd..26d1298 100644
--- a/win/tclWinThrd.c
+++ b/win/tclWinThrd.c
@@ -12,7 +12,6 @@
*/
#include "tclWinInt.h"
-#include <assert.h>
/* Workaround for mingw versions which don't provide this in float.h */
#ifndef _MCW_EM