diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-01-28 16:45:11 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-01-28 16:45:11 (GMT) |
| commit | 7a979d7a9a53922375f02407d8ca44c602e8a033 (patch) | |
| tree | 524d49ec4f7f9d214abb920ac44eb7884ad27cba | |
| parent | cc28c8d876973e1524abfd088a57c079ea1bdd63 (diff) | |
| download | tcl-7a979d7a9a53922375f02407d8ca44c602e8a033.zip tcl-7a979d7a9a53922375f02407d8ca44c602e8a033.tar.gz tcl-7a979d7a9a53922375f02407d8ca44c602e8a033.tar.bz2 | |
Fix ParseArgsObjv() wrapper
| -rw-r--r-- | generic/tclDecls.h | 2 | ||||
| -rw-r--r-- | generic/tclOOBasic.c | 2 | ||||
| -rw-r--r-- | generic/tclStubInit.c | 14 | ||||
| -rw-r--r-- | generic/tclTest.c | 12 | ||||
| -rw-r--r-- | win/tclWinDde.c | 3 | ||||
| -rw-r--r-- | win/tclWinReg.c | 2 |
6 files changed, 10 insertions, 25 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 92efa47..596638c 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -3940,7 +3940,6 @@ extern const TclStubs *tclStubsPtr; # define Tcl_UtfToWChar (sizeof(wchar_t) != sizeof(short) \ ? (int (*)(const char *, wchar_t *))tclStubsPtr->tcl_UtfToChar16 \ : (int (*)(const char *, wchar_t *))Tcl_UtfToUniChar) -#if 0 # undef Tcl_ListObjGetElements # define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*objcPtr) != sizeof(int) \ ? tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr)) \ @@ -3969,7 +3968,6 @@ extern const TclStubs *tclStubsPtr; # define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*objcPtr) != sizeof(int) \ ? tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv)) \ : tclStubsPtr->tclParseArgsObjv_((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv))) -#endif /* TCL_NO_DEPRECATED */ #else # define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \ ? (char *(*)(const wchar_t *, size_t, Tcl_DString *))Tcl_UniCharToUtfDString \ diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c index 753474a..9573720 100644 --- a/generic/tclOOBasic.c +++ b/generic/tclOOBasic.c @@ -636,7 +636,7 @@ TclOO_Object_LinkVar( Namespace *savedNsPtr; int i; - if (objc-Tcl_ObjectContextSkippedArgs(context) < 0) { + if ((size_t)objc < Tcl_ObjectContextSkippedArgs(context)) { Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv, "?varName ...?"); return TCL_ERROR; diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 16d81fe..f41d89d 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -181,19 +181,9 @@ static Tcl_Obj *FSSplitPath(Tcl_Obj *pathPtr, int *lenPtr) { static int ParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, int *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv) { - size_t n = TCL_INDEX_NONE; + size_t n = (*objcPtr < 0) ? TCL_INDEX_NONE: (size_t)*objcPtr ; int result = Tcl_ParseArgsObjv(interp, argTable, &n, objv, remObjv); - if (objcPtr) { - if ((result == TCL_OK) && (n > INT_MAX)) { - if (interp) { - Tcl_AppendResult(interp, "Too many args to be processed", NULL); - } - Tcl_Free(*remObjv); - *remObjv = NULL; - return TCL_ERROR; - } - *objcPtr = n; - } + *objcPtr = (int)n; return result; } diff --git a/generic/tclTest.c b/generic/tclTest.c index 7a066fd..91239a9 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -440,8 +440,7 @@ Tcltest_Init( Tcl_Interp *interp) /* Interpreter for application. */ { Tcl_Obj **objv, *objPtr; - size_t objc; - int index; + int objc, index; static const char *const specialOptions[] = { "-appinitprocerror", "-appinitprocdeleteinterp", "-appinitprocclosestderr", "-appinitprocsetrcfile", NULL @@ -6790,7 +6789,7 @@ SimpleMatchInDirectory( origPtr = SimpleRedirect(dirPtr); res = Tcl_FSMatchInDirectory(interp, resPtr, origPtr, pattern, types); if (res == TCL_OK) { - size_t gLength, j; + int gLength, j; Tcl_ListObjLength(NULL, resPtr, &gLength); for (j = 0; j < gLength; j++) { Tcl_Obj *gElt, *nElt; @@ -7356,8 +7355,7 @@ TestconcatobjCmd( TCL_UNUSED(const char **) /*argv*/) { Tcl_Obj *list1Ptr, *list2Ptr, *emptyPtr, *concatPtr, *tmpPtr; - int result = TCL_OK; - size_t len; + int result = TCL_OK, len; Tcl_Obj *objv[3]; /* @@ -7714,7 +7712,7 @@ TestparseargsCmd( Tcl_Obj *const objv[]) /* Arguments. */ { static int foo = 0; - size_t count = objc; + int count = objc; Tcl_Obj **remObjv, *result[3]; Tcl_ArgvInfo argTable[] = { {TCL_ARGV_CONSTANT, "-bool", INT2PTR(1), &foo, "booltest", NULL}, @@ -7726,7 +7724,7 @@ TestparseargsCmd( return TCL_ERROR; } result[0] = Tcl_NewIntObj(foo); - result[1] = Tcl_NewWideIntObj((Tcl_WideUInt)(count + 1) - 1); + result[1] = Tcl_NewIntObj(count); result[2] = Tcl_NewListObj(count, remObjv); Tcl_SetObjResult(interp, Tcl_NewListObj(3, result)); Tcl_Free(remObjv); diff --git a/win/tclWinDde.c b/win/tclWinDde.c index 8398677..2570954 100644 --- a/win/tclWinDde.c +++ b/win/tclWinDde.c @@ -314,8 +314,7 @@ DdeSetServerName( Tcl_DString dString; const WCHAR *actualName; Tcl_Obj *srvListPtr = NULL, **srvPtrPtr = NULL; - size_t n, srvCount = 0; - int lastSuffix, r = TCL_OK; + int n, srvCount = 0, lastSuffix, r = TCL_OK; ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); /* diff --git a/win/tclWinReg.c b/win/tclWinReg.c index 0d048ca..998521c 100644 --- a/win/tclWinReg.c +++ b/win/tclWinReg.c @@ -1318,7 +1318,7 @@ SetValue( (DWORD) type, (BYTE *) &value, sizeof(DWORD)); } else if (type == REG_MULTI_SZ) { Tcl_DString data, buf; - size_t objc, i; + int objc, i; Tcl_Obj **objv; if (Tcl_ListObjGetElements(interp, dataObj, &objc, &objv) != TCL_OK) { |
