diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-01-24 20:10:25 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-01-24 20:10:25 (GMT) |
commit | f786cb097f2b4dedaf17c38b8246e76df1a73ce5 (patch) | |
tree | 44800cd8681e698777665467b8e06d5b2432d9df | |
parent | 5a02d5db9cec007d16a60b24bd8cd0b1912d123f (diff) | |
download | tcl-f786cb097f2b4dedaf17c38b8246e76df1a73ce5.zip tcl-f786cb097f2b4dedaf17c38b8246e76df1a73ce5.tar.gz tcl-f786cb097f2b4dedaf17c38b8246e76df1a73ce5.tar.bz2 |
Another round of int -> size_t modifications, so strings > 2Gb are handled correctly on 64-bit platforms.
-rw-r--r-- | generic/tclBasic.c | 2 | ||||
-rw-r--r-- | generic/tclBinary.c | 14 | ||||
-rw-r--r-- | generic/tclCmdIL.c | 4 | ||||
-rw-r--r-- | generic/tclCompExpr.c | 4 | ||||
-rw-r--r-- | generic/tclConfig.c | 2 | ||||
-rw-r--r-- | generic/tclFileName.c | 7 | ||||
-rw-r--r-- | generic/tclIO.c | 26 | ||||
-rw-r--r-- | generic/tclIO.h | 6 | ||||
-rw-r--r-- | generic/tclIOGT.c | 8 | ||||
-rw-r--r-- | generic/tclInt.h | 2 | ||||
-rw-r--r-- | generic/tclInterp.c | 6 | ||||
-rw-r--r-- | generic/tclMain.c | 9 | ||||
-rw-r--r-- | generic/tclOOBasic.c | 2 | ||||
-rw-r--r-- | generic/tclOODefineCmds.c | 8 | ||||
-rw-r--r-- | generic/tclOOMethod.c | 9 | ||||
-rw-r--r-- | generic/tclOptimize.c | 4 | ||||
-rw-r--r-- | generic/tclParse.c | 2 | ||||
-rw-r--r-- | generic/tclPkg.c | 3 | ||||
-rw-r--r-- | generic/tclStringObj.c | 15 | ||||
-rw-r--r-- | generic/tclUtil.c | 2 | ||||
-rw-r--r-- | generic/tclVar.c | 7 | ||||
-rw-r--r-- | generic/tclZlib.c | 2 |
22 files changed, 76 insertions, 68 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 7056099..549c751 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -7054,7 +7054,7 @@ ExprAbsFunc( goto unChanged; } else if (l == (Tcl_WideInt)0) { if (TclHasStringRep(objv[1])) { - int numBytes; + size_t numBytes; const char *bytes = TclGetStringFromObj(objv[1], &numBytes); while (numBytes) { diff --git a/generic/tclBinary.c b/generic/tclBinary.c index f3d648f..6c40a3e 100644 --- a/generic/tclBinary.c +++ b/generic/tclBinary.c @@ -927,7 +927,7 @@ BinaryFormatCmd( goto badIndex; } if (count == BINARY_ALL) { - Tcl_GetByteArrayFromObj(objv[arg], &count); + TclGetByteArrayFromObj(objv[arg], &count); } else if (count == BINARY_NOCOUNT) { count = 1; } @@ -1091,7 +1091,7 @@ BinaryFormatCmd( char pad = (char) (cmd == 'a' ? '\0' : ' '); unsigned char *bytes; - bytes = Tcl_GetByteArrayFromObj(objv[arg++], &length); + bytes = TclGetByteArrayFromObj(objv[arg++], &length); if (count == BINARY_ALL) { count = length; @@ -1404,7 +1404,7 @@ BinaryScanCmd( } numberCachePtr = &numberCacheHash; Tcl_InitHashTable(numberCachePtr, TCL_ONE_WORD_KEYS); - buffer = Tcl_GetByteArrayFromObj(objv[1], &length); + buffer = TclGetByteArrayFromObj(objv[1], &length); format = TclGetString(objv[2]); arg = 3; offset = 0; @@ -2453,7 +2453,7 @@ BinaryEncodeHex( } TclNewObj(resultObj); - data = Tcl_GetByteArrayFromObj(objv[1], &count); + data = TclGetByteArrayFromObj(objv[1], &count); cursor = Tcl_SetByteArrayLength(resultObj, count * 2); for (offset = 0; offset < count; ++offset) { *cursor++ = HexDigits[((data[offset] >> 4) & 0x0f)]; @@ -2648,7 +2648,7 @@ BinaryEncode64( } resultObj = Tcl_NewObj(); - data = Tcl_GetByteArrayFromObj(objv[objc-1], &count); + data = TclGetByteArrayFromObj(objv[objc-1], &count); if (count > 0) { size = (((count * 4) / 3) + 3) & ~3; /* ensure 4 byte chunks */ if (maxlen > 0 && size > maxlen) { @@ -2746,7 +2746,7 @@ BinaryEncodeUu( } break; case OPT_WRAPCHAR: - wrapchar = Tcl_GetByteArrayFromObj(objv[i+1], &wrapcharlen); + wrapchar = TclGetByteArrayFromObj(objv[i+1], &wrapcharlen); break; } } @@ -2758,7 +2758,7 @@ BinaryEncodeUu( resultObj = Tcl_NewObj(); offset = 0; - data = Tcl_GetByteArrayFromObj(objv[objc-1], &count); + data = TclGetByteArrayFromObj(objv[objc-1], &count); rawLength = (lineLength - 1) * 3 / 4; start = cursor = Tcl_SetByteArrayLength(resultObj, (lineLength + wrapcharlen) * diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 0685002..3fdb890 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -541,7 +541,7 @@ InfoBodyCmd( register Interp *iPtr = (Interp *) interp; const char *name, *bytes; Proc *procPtr; - int numBytes; + size_t numBytes; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "procname"); @@ -566,7 +566,7 @@ InfoBodyCmd( * the object do not invalidate the internal rep. */ - bytes = Tcl_GetStringFromObj(procPtr->bodyPtr, &numBytes); + bytes = TclGetStringFromObj(procPtr->bodyPtr, &numBytes); Tcl_SetObjResult(interp, Tcl_NewStringObj(bytes, numBytes)); return TCL_OK; } diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c index c67a56f..06634e2 100644 --- a/generic/tclCompExpr.c +++ b/generic/tclCompExpr.c @@ -2478,9 +2478,9 @@ CompileExprTree( if (TclHasStringRep(objPtr)) { Tcl_Obj *tableValue; - int numBytes; + size_t numBytes; const char *bytes - = Tcl_GetStringFromObj(objPtr, &numBytes); + = TclGetStringFromObj(objPtr, &numBytes); index = TclRegisterLiteral(envPtr, bytes, numBytes, 0); tableValue = TclFetchLiteral(envPtr, index); diff --git a/generic/tclConfig.c b/generic/tclConfig.c index 7c95dca..3d017ed 100644 --- a/generic/tclConfig.c +++ b/generic/tclConfig.c @@ -261,7 +261,7 @@ QueryConfigObjCmd( * Value is stored as-is in a byte array, see Bug [9b2e636361], * so we have to decode it first. */ - value = (const char *) Tcl_GetByteArrayFromObj(val, &n); + value = (const char *) TclGetByteArrayFromObj(val, &n); value = Tcl_ExternalToUtfDString(venc, value, n, &conv); Tcl_SetObjResult(interp, Tcl_NewStringObj(value, Tcl_DStringLength(&conv))); diff --git a/generic/tclFileName.c b/generic/tclFileName.c index f7d1e76..33980eb 100644 --- a/generic/tclFileName.c +++ b/generic/tclFileName.c @@ -1457,7 +1457,7 @@ Tcl_GlobObjCmd( globTypes->macCreator = NULL; while (--length >= 0) { - int len; + size_t len; const char *str; Tcl_ListObjIndex(interp, typePtr, length, &look); @@ -1515,9 +1515,10 @@ Tcl_GlobObjCmd( } else { Tcl_Obj *item; + int llen; - if ((Tcl_ListObjLength(NULL, look, &len) == TCL_OK) - && (len == 3)) { + if ((Tcl_ListObjLength(NULL, look, &llen) == TCL_OK) + && (llen == 3)) { Tcl_ListObjIndex(interp, look, 0, &item); if (!strcmp("macintosh", Tcl_GetString(item))) { Tcl_ListObjIndex(interp, look, 1, &item); diff --git a/generic/tclIO.c b/generic/tclIO.c index 4a32216..ca4f461 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -673,7 +673,7 @@ TclFinalizeIOSubsystem(void) statePtr->refCount--; } - if (statePtr->refCount <= 0) { + if (statePtr->refCount + 1 <= 1) { /* * Close it only if the refcount indicates that the channel is * not referenced from any interpreter. If it is, that @@ -1091,7 +1091,7 @@ CheckForStdChannelsBeingClosed( if (tsdPtr->stdinInitialized == 1 && tsdPtr->stdinChannel != NULL && statePtr == ((Channel *)tsdPtr->stdinChannel)->state) { - if (statePtr->refCount < 2) { + if (statePtr->refCount + 1 < 3) { statePtr->refCount = 0; tsdPtr->stdinChannel = NULL; return; @@ -1099,7 +1099,7 @@ CheckForStdChannelsBeingClosed( } else if (tsdPtr->stdoutInitialized == 1 && tsdPtr->stdoutChannel != NULL && statePtr == ((Channel *)tsdPtr->stdoutChannel)->state) { - if (statePtr->refCount < 2) { + if (statePtr->refCount + 1 < 3) { statePtr->refCount = 0; tsdPtr->stdoutChannel = NULL; return; @@ -1107,7 +1107,7 @@ CheckForStdChannelsBeingClosed( } else if (tsdPtr->stderrInitialized == 1 && tsdPtr->stderrChannel != NULL && statePtr == ((Channel *)tsdPtr->stderrChannel)->state) { - if (statePtr->refCount < 2) { + if (statePtr->refCount + 1 < 3) { statePtr->refCount = 0; tsdPtr->stderrChannel = NULL; return; @@ -1269,7 +1269,7 @@ Tcl_UnregisterChannel( * If the refCount reached zero, close the actual channel. */ - if (statePtr->refCount <= 0) { + if (statePtr->refCount + 1 <= 1) { Tcl_Preserve(statePtr); if (!GotFlag(statePtr, BG_FLUSH_SCHEDULED)) { /* @@ -2015,7 +2015,7 @@ static void ChannelFree( Channel *chanPtr) { - if (chanPtr->refCount == 0) { + if (!chanPtr->refCount) { Tcl_Free(chanPtr); return; } @@ -2187,7 +2187,7 @@ Tcl_UnstackChannel( * necessary. */ - if (statePtr->refCount <= 0) { + if (statePtr->refCount + 1 <= 1) { if (Tcl_Close(interp, chan) != TCL_OK) { /* * TIP #219, Tcl Channel Reflection API. @@ -2487,7 +2487,7 @@ static void PreserveChannelBuffer( ChannelBuffer *bufPtr) { - if (bufPtr->refCount == 0) { + if (!bufPtr->refCount) { Tcl_Panic("Reuse of ChannelBuffer! %p", bufPtr); } bufPtr->refCount++; @@ -2507,7 +2507,7 @@ static int IsShared( ChannelBuffer *bufPtr) { - return bufPtr->refCount > 1; + return bufPtr->refCount + 1 > 2; } /* @@ -2943,7 +2943,7 @@ FlushChannel( * current output buffer. */ - if (GotFlag(statePtr, CHANNEL_CLOSED) && (statePtr->refCount <= 0) && + if (GotFlag(statePtr, CHANNEL_CLOSED) && (statePtr->refCount + 1 <= 1) && (statePtr->outQueueHead == NULL) && ((statePtr->curOutPtr == NULL) || IsBufferEmpty(statePtr->curOutPtr))) { @@ -3410,7 +3410,7 @@ Tcl_Close( statePtr = chanPtr->state; chanPtr = statePtr->topChanPtr; - if (statePtr->refCount > 0) { + if (statePtr->refCount + 1 > 1) { Tcl_Panic("called Tcl_Close on channel with refCount > 0"); } @@ -6108,7 +6108,7 @@ ReadChars( (void) TclGetStringFromObj(objPtr, &numBytes); Tcl_AppendToObj(objPtr, NULL, dstLimit); if (toRead == srcLen) { - unsigned int size; + size_t size; dst = TclGetStringStorage(objPtr, &size) + numBytes; dstLimit = size - numBytes; @@ -10359,7 +10359,7 @@ Tcl_IsChannelShared( ChannelState *statePtr = ((Channel *) chan)->state; /* State of real channel structure. */ - return ((statePtr->refCount > 1) ? 1 : 0); + return ((statePtr->refCount + 1 > 2) ? 1 : 0); } /* diff --git a/generic/tclIO.h b/generic/tclIO.h index 15f0f78..eea7429 100644 --- a/generic/tclIO.h +++ b/generic/tclIO.h @@ -36,7 +36,7 @@ */ typedef struct ChannelBuffer { - int refCount; /* Current uses count */ + size_t refCount; /* Current uses count */ int nextAdded; /* The next position into which a character * will be put in the buffer. */ int nextRemoved; /* Position of next byte to be removed from @@ -113,7 +113,7 @@ typedef struct Channel { ChannelBuffer *inQueueHead; /* Points at first buffer in input queue. */ ChannelBuffer *inQueueTail; /* Points at last buffer in input queue. */ - int refCount; + size_t refCount; } Channel; /* @@ -163,7 +163,7 @@ typedef struct ChannelState { int unreportedError; /* Non-zero if an error report was deferred * because it happened in the background. The * value is the POSIX error code. */ - int refCount; /* How many interpreters hold references to + size_t refCount; /* How many interpreters hold references to * this IO channel? */ struct CloseCallback *closeCbPtr; /* Callbacks registered to be called when the diff --git a/generic/tclIOGT.c b/generic/tclIOGT.c index 5e87c31..5e52042 100644 --- a/generic/tclIOGT.c +++ b/generic/tclIOGT.c @@ -378,7 +378,7 @@ ExecuteCallback( * interpreters. */ { Tcl_Obj *resObj; /* See below, switch (transmit). */ - int resLen; + size_t resLen; unsigned char *resBuf; Tcl_InterpState state = NULL; int res = TCL_OK; @@ -443,7 +443,7 @@ ExecuteCallback( break; } resObj = Tcl_GetObjResult(eval); - resBuf = Tcl_GetByteArrayFromObj(resObj, &resLen); + resBuf = TclGetByteArrayFromObj(resObj, &resLen); Tcl_WriteRaw(Tcl_GetStackedChannel(dataPtr->self), (char *) resBuf, resLen); break; @@ -453,13 +453,13 @@ ExecuteCallback( break; } resObj = Tcl_GetObjResult(eval); - resBuf = Tcl_GetByteArrayFromObj(resObj, &resLen); + resBuf = TclGetByteArrayFromObj(resObj, &resLen); Tcl_WriteRaw(dataPtr->self, (char *) resBuf, resLen); break; case TRANSMIT_IBUF: resObj = Tcl_GetObjResult(eval); - resBuf = Tcl_GetByteArrayFromObj(resObj, &resLen); + resBuf = TclGetByteArrayFromObj(resObj, &resLen); ResultAdd(&dataPtr->result, resBuf, resLen); break; diff --git a/generic/tclInt.h b/generic/tclInt.h index c0a4ca4..e9404cd 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -2971,7 +2971,7 @@ MODULE_SCOPE Tcl_Obj * TclGetProcessGlobalValue(ProcessGlobalValue *pgvPtr); MODULE_SCOPE Tcl_Obj * TclGetSourceFromFrame(CmdFrame *cfPtr, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE char * TclGetStringStorage(Tcl_Obj *objPtr, - unsigned int *sizePtr); + size_t *sizePtr); MODULE_SCOPE int TclGetLoadedPackagesEx(Tcl_Interp *interp, const char *targetName, const char *packageName); diff --git a/generic/tclInterp.c b/generic/tclInterp.c index 607ccac..dd9fec8 100644 --- a/generic/tclInterp.c +++ b/generic/tclInterp.c @@ -4564,7 +4564,8 @@ SlaveCommandLimitCmd( Tcl_WrongNumArgs(interp, consumedObjc, objv, "?-option value ...?"); return TCL_ERROR; } else { - int i, scriptLen = 0, limitLen = 0; + int i; + size_t scriptLen = 0, limitLen = 0; Tcl_Obj *scriptObj = NULL, *granObj = NULL, *limitObj = NULL; int gran = 0, limit = 0; @@ -4769,7 +4770,8 @@ SlaveTimeLimitCmd( Tcl_WrongNumArgs(interp, consumedObjc, objv, "?-option value ...?"); return TCL_ERROR; } else { - int i, scriptLen = 0, milliLen = 0, secLen = 0; + int i; + size_t scriptLen = 0, milliLen = 0, secLen = 0; Tcl_Obj *scriptObj = NULL, *granObj = NULL; Tcl_Obj *milliObj = NULL, *secObj = NULL; int gran = 0; diff --git a/generic/tclMain.c b/generic/tclMain.c index ed04ce7..f85f8aa 100644 --- a/generic/tclMain.c +++ b/generic/tclMain.c @@ -467,7 +467,7 @@ Tcl_MainEx( while ((is.input != NULL) && !Tcl_InterpDeleted(interp)) { mainLoopProc = TclGetMainLoop(); if (mainLoopProc == NULL) { - int length; + size_t length; if (is.tty) { Prompt(interp, &is); @@ -488,7 +488,7 @@ Tcl_MainEx( Tcl_IncrRefCount(is.commandPtr); } length = Tcl_GetsObj(is.input, is.commandPtr); - if (length < 0) { + if (length == (size_t)-1) { if (Tcl_InputBlocked(is.input)) { /* * This can only happen if stdin has been set to @@ -753,7 +753,8 @@ StdinProc( ClientData clientData, /* The state of interactive cmd line */ int mask) /* Not used. */ { - int code, length; + int code; + size_t length; InteractiveState *isPtr = clientData; Tcl_Channel chan = isPtr->input; Tcl_Obj *commandPtr = isPtr->commandPtr; @@ -765,7 +766,7 @@ StdinProc( Tcl_IncrRefCount(commandPtr); } length = Tcl_GetsObj(chan, commandPtr); - if (length < 0) { + if (length == (size_t)-1) { if (Tcl_InputBlocked(chan)) { return; } diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c index 7f7397b..60e7456 100644 --- a/generic/tclOOBasic.c +++ b/generic/tclOOBasic.c @@ -248,7 +248,7 @@ TclOO_Class_CreateNs( { Object *oPtr = (Object *) Tcl_ObjectContextObject(context); const char *objName, *nsName; - int len; + size_t len; /* * Sanity check; should not be possible to invoke this method on a diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c index 6caaa81..28ea4b5 100644 --- a/generic/tclOODefineCmds.c +++ b/generic/tclOODefineCmds.c @@ -689,7 +689,7 @@ TclOOUnknownDefinition( Namespace *nsPtr = (Namespace *) Tcl_GetCurrentNamespace(interp); Tcl_HashSearch search; Tcl_HashEntry *hPtr; - int soughtLen; + size_t soughtLen; const char *soughtStr, *matchedStr = NULL; if (objc < 2) { @@ -762,7 +762,7 @@ FindCommand( Tcl_Obj *stringObj, Tcl_Namespace *const namespacePtr) { - int length; + size_t length; const char *nameStr, *string = TclGetStringFromObj(stringObj, &length); register Namespace *const nsPtr = (Namespace *) namespacePtr; FOREACH_HASH_DECLS; @@ -1514,7 +1514,7 @@ TclOODefineConstructorObjCmd( Object *oPtr; Class *clsPtr; Tcl_Method method; - int bodyLength; + size_t bodyLength; if (objc != 3) { Tcl_WrongNumArgs(interp, 1, objv, "arguments body"); @@ -1725,7 +1725,7 @@ TclOODefineDestructorObjCmd( Object *oPtr; Class *clsPtr; Tcl_Method method; - int bodyLength; + size_t bodyLength; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "body"); diff --git a/generic/tclOOMethod.c b/generic/tclOOMethod.c index 5cfdb0d..fa3cd6c 100644 --- a/generic/tclOOMethod.c +++ b/generic/tclOOMethod.c @@ -993,7 +993,8 @@ ProcedureMethodCompiledVarConnect( Tcl_Obj *variableObj; PrivateVariableMapping *privateVar; Tcl_HashEntry *hPtr; - int i, isNew, cacheIt, varLen, len; + int i, isNew, cacheIt; + size_t varLen, len; const char *match, *varName; /* @@ -1178,7 +1179,7 @@ RenderDeclarerName( #define LIMIT 60 #define ELLIPSIFY(str,len) \ - ((len) > LIMIT ? LIMIT : ((int)len)), (str), ((len) > LIMIT ? "..." : "") + ((len) > LIMIT ? LIMIT : (int)(len)), (str), ((len) > LIMIT ? "..." : "") static void MethodErrorHandler( @@ -1220,7 +1221,7 @@ ConstructorErrorHandler( Method *mPtr = contextPtr->callPtr->chain[contextPtr->index].mPtr; Object *declarerPtr; const char *objectName, *kindName; - int objectNameLen; + size_t objectNameLen; if (mPtr->declaringObjectPtr != NULL) { declarerPtr = mPtr->declaringObjectPtr; @@ -1249,7 +1250,7 @@ DestructorErrorHandler( Method *mPtr = contextPtr->callPtr->chain[contextPtr->index].mPtr; Object *declarerPtr; const char *objectName, *kindName; - int objectNameLen; + size_t objectNameLen; if (mPtr->declaringObjectPtr != NULL) { declarerPtr = mPtr->declaringObjectPtr; diff --git a/generic/tclOptimize.c b/generic/tclOptimize.c index abd312d..6419d87 100644 --- a/generic/tclOptimize.c +++ b/generic/tclOptimize.c @@ -231,7 +231,7 @@ ConvertZeroEffectToNOP( && TclGetUInt1AtPtr(currentInstPtr + size + 1) == 2) { Tcl_Obj *litPtr = TclFetchLiteral(envPtr, TclGetUInt1AtPtr(currentInstPtr + 1)); - int numBytes; + size_t numBytes; (void) TclGetStringFromObj(litPtr, &numBytes); if (numBytes == 0) { @@ -246,7 +246,7 @@ ConvertZeroEffectToNOP( && TclGetUInt1AtPtr(currentInstPtr + size + 1) == 2) { Tcl_Obj *litPtr = TclFetchLiteral(envPtr, TclGetUInt4AtPtr(currentInstPtr + 1)); - int numBytes; + size_t numBytes; (void) TclGetStringFromObj(litPtr, &numBytes); if (numBytes == 0) { diff --git a/generic/tclParse.c b/generic/tclParse.c index e0b46e6..b2a4e23 100644 --- a/generic/tclParse.c +++ b/generic/tclParse.c @@ -2225,7 +2225,7 @@ TclSubstTokens( if ((appendByteLength == 1) && (utfCharBytes[0] == ' ') && (tokenPtr->start[1] == '\n')) { if (isLiteral) { - int clPos; + size_t clPos; if (result == 0) { clPos = 0; diff --git a/generic/tclPkg.c b/generic/tclPkg.c index fa82fe4..ed04cb1 100644 --- a/generic/tclPkg.c +++ b/generic/tclPkg.c @@ -1954,7 +1954,8 @@ AddRequirementsToResult( * available. */ { Tcl_Obj *result = Tcl_GetObjResult(interp); - int i, length; + int i; + size_t length; for (i = 0; i < reqc; i++) { const char *v = TclGetStringFromObj(reqv[i], &length); diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 715dbc1..9537490 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1688,8 +1688,8 @@ Tcl_AppendFormatToObj( Tcl_Obj *const objv[]) { const char *span = format, *msg, *errCode; - int numBytes = 0, objIndex = 0, gotXpg = 0, gotSequential = 0; - int originalLength, limit; + int objIndex = 0, gotXpg = 0, gotSequential = 0; + size_t originalLength, limit, numBytes = 0; Tcl_UniChar ch = 0; static const char *mixedXPG = "cannot mix \"%\" and \"%n$\" conversion specifiers"; @@ -1703,7 +1703,7 @@ Tcl_AppendFormatToObj( Tcl_Panic("%s called with shared object", "Tcl_AppendFormatToObj"); } (void)TclGetStringFromObj(appendObj, &originalLength); - limit = INT_MAX - originalLength; + limit = (size_t)INT_MAX - originalLength; /* * Format string is NUL-terminated. @@ -1716,7 +1716,8 @@ Tcl_AppendFormatToObj( #ifndef TCL_WIDE_INT_IS_LONG int useWide = 0; #endif - int newXpg, numChars, allocSegment = 0, segmentLimit, segmentNumBytes; + int newXpg, numChars, allocSegment = 0, segmentLimit; + size_t segmentNumBytes; Tcl_Obj *segment; int step = TclUtfToUniChar(format, &ch); @@ -1848,7 +1849,7 @@ Tcl_AppendFormatToObj( format += step; step = TclUtfToUniChar(format, &ch); } - if (width > limit) { + if (width > (int) limit) { msg = overflow; errCode = "OVERFLOW"; goto errorMsg; @@ -2721,12 +2722,12 @@ Tcl_ObjPrintf( char * TclGetStringStorage( Tcl_Obj *objPtr, - unsigned int *sizePtr) + size_t *sizePtr) { String *stringPtr; if (objPtr->typePtr != &tclStringType || objPtr->bytes == NULL) { - return TclGetStringFromObj(objPtr, (int *)sizePtr); + return TclGetStringFromObj(objPtr, sizePtr); } stringPtr = GET_STRING(objPtr); diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 44ecd90..cad3ee7 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -3639,7 +3639,7 @@ TclGetIntForIndex( { Tcl_WideInt wide; - /* Use platform-related size_t to wide-int to consider negative value + /* Use platform-related size_t to wide-int to consider negative value * ((size_t)-1) if wide-int and size_t have different dimensions. */ if (GetWideForIndex(interp, objPtr, TclWideIntFromSize(endValue), &wide) == TCL_ERROR) { diff --git a/generic/tclVar.c b/generic/tclVar.c index 380b046..b467786 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -665,7 +665,7 @@ TclObjLookupVarEx( * part1Ptr is possibly an unparsed array element. */ - int len; + size_t len; const char *part1 = TclGetStringFromObj(part1Ptr, &len); if ((len > 1) && (part1[len - 1] == ')')) { @@ -840,7 +840,8 @@ TclLookupSimpleVar( * the variable. */ Namespace *varNsPtr, *cxtNsPtr, *dummy1Ptr, *dummy2Ptr; ResolverScheme *resPtr; - int isNew, i, result, varLen; + int isNew, i, result; + size_t varLen; const char *varName = TclGetStringFromObj(varNamePtr, &varLen); varPtr = NULL; @@ -970,7 +971,7 @@ TclLookupSimpleVar( if (localCt > 0) { Tcl_Obj **objPtrPtr = &varFramePtr->localCachePtr->varName0; const char *localNameStr; - int localLen; + size_t localLen; for (i=0 ; i<localCt ; i++, objPtrPtr++) { register Tcl_Obj *objPtr = *objPtrPtr; diff --git a/generic/tclZlib.c b/generic/tclZlib.c index b561ce9..34ea90c 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -2739,7 +2739,7 @@ ZlibStreamAddCmd( */ if (compDictObj != NULL) { - int len; + size_t len; (void) TclGetByteArrayFromObj(compDictObj, &len); if (len == 0) { |