summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-18 11:04:22 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-18 11:04:22 (GMT)
commit7f8e25f90769fba6d16e9f232487a14e691a1a26 (patch)
tree420732b5801d39c6a7146d9b3b892a88e71cbe05
parent478601a07b6c947d19f75d8436a78008553956a6 (diff)
parentcf84dd6daf65e20f747bcabb9584b370c08f4392 (diff)
downloadtcl-7f8e25f90769fba6d16e9f232487a14e691a1a26.zip
tcl-7f8e25f90769fba6d16e9f232487a14e691a1a26.tar.gz
tcl-7f8e25f90769fba6d16e9f232487a14e691a1a26.tar.bz2
Fix [c13819225e]: Problem with lsort|lsearch -stride on 32-bit linux
-rw-r--r--generic/tclBinary.c2
-rw-r--r--generic/tclCmdIL.c15
-rw-r--r--generic/tclIOUtil.c8
-rw-r--r--generic/tclVar.c4
4 files changed, 15 insertions, 14 deletions
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index 81ea3f3..b8cf1bc 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -2629,7 +2629,7 @@ BinaryEncode64(
}
switch (index) {
case OPT_MAXLEN:
- if (Tcl_GetSizeIntFromObj(interp, objv[i + 1], &maxlen) != TCL_OK) {
+ if (TclGetSizeIntFromObj(interp, objv[i + 1], &maxlen) != TCL_OK) {
return TCL_ERROR;
}
if (maxlen < 0) {
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index 4836b9e..9a502e0 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -2981,7 +2981,8 @@ Tcl_LrepeatObjCmd(
Tcl_Obj *const objv[])
/* The argument objects. */
{
- Tcl_Size elementCount, i, totalElems;
+ Tcl_WideInt elementCount, i;
+ Tcl_Size totalElems;
Tcl_Obj *listPtr, **dataArray = NULL;
/*
@@ -2993,12 +2994,12 @@ Tcl_LrepeatObjCmd(
Tcl_WrongNumArgs(interp, 1, objv, "count ?value ...?");
return TCL_ERROR;
}
- if (TCL_OK != TclGetSizeIntFromObj(interp, objv[1], &elementCount)) {
+ if (TCL_OK != TclGetWideIntFromObj(interp, objv[1], &elementCount)) {
return TCL_ERROR;
}
if (elementCount < 0) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad count \"%" TCL_SIZE_MODIFIER "d\": must be integer >= 0", elementCount));
+ "bad count \"%" TCL_LL_MODIFIER "d\": must be integer >= 0", elementCount));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "LREPEAT", "NEGARG",
NULL);
return TCL_ERROR;
@@ -3307,10 +3308,10 @@ Tcl_LsearchObjCmd(
const char *bytes, *patternBytes;
int match, result=TCL_OK, bisect;
Tcl_Size i, length = 0, listc, elemLen, start, index;
- Tcl_Size groupSize, groupOffset, lower, upper;
+ Tcl_Size groupOffset, lower, upper;
int allocatedIndexVector = 0;
int isIncreasing;
- Tcl_WideInt patWide, objWide, wide;
+ Tcl_WideInt patWide, objWide, wide, groupSize;
int allMatches, inlineReturn, negatedMatch, returnSubindices, noCase;
double patDouble, objDouble;
SortInfo sortInfo;
@@ -4554,8 +4555,8 @@ Tcl_LsortObjCmd(
int indices, nocase = 0, indexc;
int sortMode = SORTMODE_ASCII;
int group, allocatedIndexVector = 0;
- Tcl_Size j, idx, groupSize, groupOffset, length;
- Tcl_WideInt wide;
+ Tcl_Size j, idx, groupOffset, length;
+ Tcl_WideInt wide, groupSize;
Tcl_Obj *resultPtr, *cmdPtr, **listObjPtrs, *listObj, *indexPtr;
Tcl_Size i, elmArrSize;
SortElement *elementArray = NULL, *elementPtr;
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index cec6ad3..4484e2b 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -1802,7 +1802,7 @@ Tcl_FSEvalFileEx(
const char *pathString = Tcl_GetStringFromObj(pathPtr, &length);
unsigned limit = 150;
- int overflow = (length > limit);
+ int overflow = ((unsigned)length > limit);
Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf(
"\n (file \"%.*s%s\" line %d)",
@@ -1954,12 +1954,12 @@ EvalFileCallback(
Tcl_Size length;
const char *pathString = Tcl_GetStringFromObj(pathPtr, &length);
- const unsigned int limit = 150;
- int overflow = (length > limit);
+ const unsigned limit = 150;
+ int overflow = ((unsigned)length > limit);
Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf(
"\n (file \"%.*s%s\" line %d)",
- (overflow ? limit : (unsigned int)length), pathString,
+ (overflow ? limit : (unsigned)length), pathString,
(overflow ? "..." : ""), Tcl_GetErrorLine(interp)));
}
diff --git a/generic/tclVar.c b/generic/tclVar.c
index 32ee631..3bd47be 100644
--- a/generic/tclVar.c
+++ b/generic/tclVar.c
@@ -376,7 +376,7 @@ CleanupVar(
{
if (TclIsVarUndefined(varPtr) && TclIsVarInHash(varPtr)
&& !TclIsVarTraced(varPtr)
- && (VarHashRefCount(varPtr) == (unsigned)
+ && (VarHashRefCount(varPtr) == (Tcl_Size)
!TclIsVarDeadHash(varPtr))) {
if (VarHashRefCount(varPtr) == 0) {
Tcl_Free(varPtr);
@@ -386,7 +386,7 @@ CleanupVar(
}
if (arrayPtr != NULL && TclIsVarUndefined(arrayPtr) &&
TclIsVarInHash(arrayPtr) && !TclIsVarTraced(arrayPtr) &&
- (VarHashRefCount(arrayPtr) == (unsigned)
+ (VarHashRefCount(arrayPtr) == (Tcl_Size)
!TclIsVarDeadHash(arrayPtr))) {
if (VarHashRefCount(arrayPtr) == 0) {
Tcl_Free(arrayPtr);