summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-04-18 19:42:02 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-04-18 19:42:02 (GMT)
commit49cfc0317e60291c8ed8e25b07d725058ec72bb2 (patch)
treed4f1dd446e58fa1b7172feac092b80cf3ce6e801
parentdb8e59ed80acf95cad3f0d0da9e36f46ae2de2d7 (diff)
downloadtcl-49cfc0317e60291c8ed8e25b07d725058ec72bb2.zip
tcl-49cfc0317e60291c8ed8e25b07d725058ec72bb2.tar.gz
tcl-49cfc0317e60291c8ed8e25b07d725058ec72bb2.tar.bz2
Adapt TIP's #494/#481/#537/#544/#568/#616/#623/#627/#630 to TIP #660 changes
-rw-r--r--generic/tcl.decls26
-rw-r--r--generic/tcl.h6
-rw-r--r--generic/tclBasic.c4
-rw-r--r--generic/tclBinary.c6
-rw-r--r--generic/tclDecls.h98
-rw-r--r--generic/tclOO.h2
-rw-r--r--generic/tclObj.c16
-rw-r--r--generic/tclProc.c4
-rw-r--r--generic/tclStringObj.c2
-rw-r--r--generic/tclStubInit.c16
-rw-r--r--unix/dltest/pkgt.c8
-rw-r--r--win/tclAppInit.c2
12 files changed, 93 insertions, 97 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index a89e64f..daa2f2b 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -2413,19 +2413,19 @@ declare 649 {
}
declare 650 {
unsigned char *Tcl_GetBytesFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
- size_t *numBytesPtr)
+ ptrdiff_t *numBytesPtr)
}
# TIP #481
declare 651 {
- char *TclGetStringFromObj(Tcl_Obj *objPtr, size_t *lengthPtr)
+ char *TclGetStringFromObj(Tcl_Obj *objPtr, ptrdiff_t *lengthPtr)
}
declare 652 {
- unsigned short *TclGetUnicodeFromObj(Tcl_Obj *objPtr, size_t *lengthPtr)
+ unsigned short *TclGetUnicodeFromObj(Tcl_Obj *objPtr, ptrdiff_t *lengthPtr)
}
# Only available in Tcl 8.x, NULL in Tcl 9.0
declare 653 {
- unsigned char *TclGetByteArrayFromObj(Tcl_Obj *objPtr, size_t *numBytesPtr)
+ unsigned char *TclGetByteArrayFromObj(Tcl_Obj *objPtr, ptrdiff_t *numBytesPtr)
}
# TIP #575
@@ -2462,28 +2462,28 @@ declare 660 {
# TIP #616
declare 661 {
int TclListObjGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr,
- size_t *objcPtr, Tcl_Obj ***objvPtr)
+ ptrdiff_t *objcPtr, Tcl_Obj ***objvPtr)
}
declare 662 {
int TclListObjLength(Tcl_Interp *interp, Tcl_Obj *listPtr,
- size_t *lengthPtr)
+ ptrdiff_t *lengthPtr)
}
declare 663 {
- int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr)
+ int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr, ptrdiff_t *sizePtr)
}
declare 664 {
- int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr,
+ int TclSplitList(Tcl_Interp *interp, const char *listStr, ptrdiff_t *argcPtr,
const char ***argvPtr)
}
declare 665 {
- void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr)
+ void TclSplitPath(const char *path, ptrdiff_t *argcPtr, const char ***argvPtr)
}
declare 666 {
- Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr)
+ Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, ptrdiff_t *lenPtr)
}
declare 667 {
int TclParseArgsObjv(Tcl_Interp *interp, const Tcl_ArgvInfo *argTable,
- size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv)
+ ptrdiff_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv)
}
# TIP #617
@@ -2533,7 +2533,7 @@ declare 678 {
}
declare 679 {
int Tcl_NRCallObjProc2(Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2,
- void *clientData, size_t objc, Tcl_Obj *const objv[])
+ void *clientData, ptrdiff_t objc, Tcl_Obj *const objv[])
}
# TIP #638.
@@ -2542,7 +2542,7 @@ declare 680 {
void **clientDataPtr, int *typePtr)
}
declare 681 {
- int Tcl_GetNumber(Tcl_Interp *interp, const char *bytes, size_t numBytes,
+ int Tcl_GetNumber(Tcl_Interp *interp, const char *bytes, ptrdiff_t numBytes,
void **clientDataPtr, int *typePtr)
}
diff --git a/generic/tcl.h b/generic/tcl.h
index 27d7995..07b0f97 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -704,7 +704,7 @@ typedef int (Tcl_CmdObjTraceProc) (void *clientData, Tcl_Interp *interp,
int level, const char *command, Tcl_Command commandInfo, int objc,
struct Tcl_Obj *const *objv);
typedef int (Tcl_CmdObjTraceProc2) (void *clientData, Tcl_Interp *interp,
- size_t level, const char *command, Tcl_Command commandInfo, size_t objc,
+ ptrdiff_t level, const char *command, Tcl_Command commandInfo, ptrdiff_t objc,
struct Tcl_Obj *const *objv);
typedef void (Tcl_CmdObjTraceDeleteProc) (void *clientData);
typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
@@ -731,7 +731,7 @@ typedef void (Tcl_NamespaceDeleteProc) (void *clientData);
typedef int (Tcl_ObjCmdProc) (void *clientData, Tcl_Interp *interp,
int objc, struct Tcl_Obj *const *objv);
typedef int (Tcl_ObjCmdProc2) (void *clientData, Tcl_Interp *interp,
- size_t objc, struct Tcl_Obj *const *objv);
+ ptrdiff_t objc, struct Tcl_Obj *const *objv);
typedef int (Tcl_LibraryInitProc) (Tcl_Interp *interp);
typedef int (Tcl_LibraryUnloadProc) (Tcl_Interp *interp, int flags);
typedef void (Tcl_PanicProc) (const char *format, ...);
@@ -1479,7 +1479,7 @@ typedef void (Tcl_ScaleTimeProc) (Tcl_Time *timebuf, void *clientData);
#if TCL_MAJOR_VERSION > 8
# define TCL_CLOSE2PROC NULL
#else
-# define TCL_CLOSE2PROC ((void *) 1)
+# define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *)(void *)(size_t)1)
#endif
/*
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index abc5d60..4159cc4 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -9192,10 +9192,10 @@ Tcl_NRCallObjProc2(
Tcl_Interp *interp,
Tcl_ObjCmdProc2 *objProc,
void *clientData,
- size_t objc,
+ ptrdiff_t objc,
Tcl_Obj *const objv[])
{
- if (objc > INT_MAX) {
+ if ((size_t)objc > INT_MAX) {
Tcl_WrongNumArgs(interp, 1, objv, "?args?");
return TCL_ERROR;
}
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index b956bd0..710ed0b 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -457,7 +457,7 @@ unsigned char *
Tcl_GetBytesFromObj(
Tcl_Interp *interp, /* For error reporting */
Tcl_Obj *objPtr, /* Value to extract from */
- size_t *numBytesPtr) /* If non-NULL, write the number of bytes
+ ptrdiff_t *numBytesPtr) /* If non-NULL, write the number of bytes
* in the array here */
{
ByteArray *baPtr;
@@ -539,7 +539,7 @@ Tcl_GetByteArrayFromObj(
unsigned char *
TclGetByteArrayFromObj(
Tcl_Obj *objPtr, /* The ByteArray object. */
- size_t *numBytesPtr) /* If non-NULL, write the number of bytes
+ ptrdiff_t *numBytesPtr) /* If non-NULL, write the number of bytes
* in the array here */
{
ByteArray *baPtr;
@@ -557,7 +557,7 @@ TclGetByteArrayFromObj(
if (numBytesPtr != NULL) {
/* Make sure we return a value between 0 and UINT_MAX-1, or (size_t)-1 */
- *numBytesPtr = ((size_t)(unsigned int)(baPtr->used + 1)) - 1;
+ *numBytesPtr = ((ptrdiff_t)(unsigned int)(baPtr->used + 1)) - 1;
}
return baPtr->bytes;
}
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index c5c7526..fb0931f 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -1936,16 +1936,16 @@ EXTERN unsigned char * TclGetBytesFromObj(Tcl_Interp *interp,
Tcl_Obj *objPtr, int *numBytesPtr);
/* 650 */
EXTERN unsigned char * Tcl_GetBytesFromObj(Tcl_Interp *interp,
- Tcl_Obj *objPtr, size_t *numBytesPtr);
+ Tcl_Obj *objPtr, ptrdiff_t *numBytesPtr);
/* 651 */
EXTERN char * TclGetStringFromObj(Tcl_Obj *objPtr,
- size_t *lengthPtr);
+ ptrdiff_t *lengthPtr);
/* 652 */
EXTERN unsigned short * TclGetUnicodeFromObj(Tcl_Obj *objPtr,
- size_t *lengthPtr);
+ ptrdiff_t *lengthPtr);
/* 653 */
EXTERN unsigned char * TclGetByteArrayFromObj(Tcl_Obj *objPtr,
- size_t *numBytesPtr);
+ ptrdiff_t *numBytesPtr);
/* 654 */
EXTERN int Tcl_UtfCharComplete(const char *src, Tcl_Size length);
/* 655 */
@@ -1971,26 +1971,26 @@ EXTERN int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async,
int sigNumber);
/* 661 */
EXTERN int TclListObjGetElements(Tcl_Interp *interp,
- Tcl_Obj *listPtr, size_t *objcPtr,
+ Tcl_Obj *listPtr, ptrdiff_t *objcPtr,
Tcl_Obj ***objvPtr);
/* 662 */
EXTERN int TclListObjLength(Tcl_Interp *interp,
- Tcl_Obj *listPtr, size_t *lengthPtr);
+ Tcl_Obj *listPtr, ptrdiff_t *lengthPtr);
/* 663 */
EXTERN int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
- size_t *sizePtr);
+ ptrdiff_t *sizePtr);
/* 664 */
EXTERN int TclSplitList(Tcl_Interp *interp, const char *listStr,
- size_t *argcPtr, const char ***argvPtr);
+ ptrdiff_t *argcPtr, const char ***argvPtr);
/* 665 */
-EXTERN void TclSplitPath(const char *path, size_t *argcPtr,
+EXTERN void TclSplitPath(const char *path, ptrdiff_t *argcPtr,
const char ***argvPtr);
/* 666 */
-EXTERN Tcl_Obj * TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr);
+EXTERN Tcl_Obj * TclFSSplitPath(Tcl_Obj *pathPtr, ptrdiff_t *lenPtr);
/* 667 */
EXTERN int TclParseArgsObjv(Tcl_Interp *interp,
const Tcl_ArgvInfo *argTable,
- size_t *objcPtr, Tcl_Obj *const *objv,
+ ptrdiff_t *objcPtr, Tcl_Obj *const *objv,
Tcl_Obj ***remObjv);
/* 668 */
EXTERN Tcl_Size Tcl_UniCharLen(const int *uniStr);
@@ -2030,14 +2030,14 @@ EXTERN Tcl_Command Tcl_NRCreateCommand2(Tcl_Interp *interp,
/* 679 */
EXTERN int Tcl_NRCallObjProc2(Tcl_Interp *interp,
Tcl_ObjCmdProc2 *objProc2, void *clientData,
- size_t objc, Tcl_Obj *const objv[]);
+ ptrdiff_t objc, Tcl_Obj *const objv[]);
/* 680 */
EXTERN int Tcl_GetNumberFromObj(Tcl_Interp *interp,
Tcl_Obj *objPtr, void **clientDataPtr,
int *typePtr);
/* 681 */
EXTERN int Tcl_GetNumber(Tcl_Interp *interp, const char *bytes,
- size_t numBytes, void **clientDataPtr,
+ ptrdiff_t numBytes, void **clientDataPtr,
int *typePtr);
/* 682 */
EXTERN int Tcl_RemoveChannelMode(Tcl_Interp *interp,
@@ -2738,10 +2738,10 @@ typedef struct TclStubs {
char * (*tcl_UniCharToUtfDString) (const int *uniStr, Tcl_Size uniLength, Tcl_DString *dsPtr); /* 647 */
int * (*tcl_UtfToUniCharDString) (const char *src, Tcl_Size length, Tcl_DString *dsPtr); /* 648 */
unsigned char * (*tclGetBytesFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *numBytesPtr); /* 649 */
- unsigned char * (*tcl_GetBytesFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, size_t *numBytesPtr); /* 650 */
- char * (*tclGetStringFromObj) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 651 */
- unsigned short * (*tclGetUnicodeFromObj) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 652 */
- unsigned char * (*tclGetByteArrayFromObj) (Tcl_Obj *objPtr, size_t *numBytesPtr); /* 653 */
+ unsigned char * (*tcl_GetBytesFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, ptrdiff_t *numBytesPtr); /* 650 */
+ char * (*tclGetStringFromObj) (Tcl_Obj *objPtr, ptrdiff_t *lengthPtr); /* 651 */
+ unsigned short * (*tclGetUnicodeFromObj) (Tcl_Obj *objPtr, ptrdiff_t *lengthPtr); /* 652 */
+ unsigned char * (*tclGetByteArrayFromObj) (Tcl_Obj *objPtr, ptrdiff_t *numBytesPtr); /* 653 */
int (*tcl_UtfCharComplete) (const char *src, Tcl_Size length); /* 654 */
const char * (*tcl_UtfNext) (const char *src); /* 655 */
const char * (*tcl_UtfPrev) (const char *src, const char *start); /* 656 */
@@ -2749,13 +2749,13 @@ typedef struct TclStubs {
int (*tcl_ExternalToUtfDStringEx) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_DString *dsPtr, Tcl_Size *errorLocationPtr); /* 658 */
int (*tcl_UtfToExternalDStringEx) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, Tcl_Size srcLen, int flags, Tcl_DString *dsPtr, Tcl_Size *errorLocationPtr); /* 659 */
int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */
- int (*tclListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */
- int (*tclListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, size_t *lengthPtr); /* 662 */
- int (*tclDictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, size_t *sizePtr); /* 663 */
- int (*tclSplitList) (Tcl_Interp *interp, const char *listStr, size_t *argcPtr, const char ***argvPtr); /* 664 */
- void (*tclSplitPath) (const char *path, size_t *argcPtr, const char ***argvPtr); /* 665 */
- Tcl_Obj * (*tclFSSplitPath) (Tcl_Obj *pathPtr, size_t *lenPtr); /* 666 */
- int (*tclParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */
+ int (*tclListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, ptrdiff_t *objcPtr, Tcl_Obj ***objvPtr); /* 661 */
+ int (*tclListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, ptrdiff_t *lengthPtr); /* 662 */
+ int (*tclDictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, ptrdiff_t *sizePtr); /* 663 */
+ int (*tclSplitList) (Tcl_Interp *interp, const char *listStr, ptrdiff_t *argcPtr, const char ***argvPtr); /* 664 */
+ void (*tclSplitPath) (const char *path, ptrdiff_t *argcPtr, const char ***argvPtr); /* 665 */
+ Tcl_Obj * (*tclFSSplitPath) (Tcl_Obj *pathPtr, ptrdiff_t *lenPtr); /* 666 */
+ int (*tclParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, ptrdiff_t *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 667 */
Tcl_Size (*tcl_UniCharLen) (const int *uniStr); /* 668 */
Tcl_Size (*tclNumUtfChars) (const char *src, Tcl_Size length); /* 669 */
Tcl_Size (*tclGetCharLength) (Tcl_Obj *objPtr); /* 670 */
@@ -2767,9 +2767,9 @@ typedef struct TclStubs {
Tcl_Command (*tcl_CreateObjCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 676 */
Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
Tcl_Command (*tcl_NRCreateCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc, Tcl_ObjCmdProc2 *nreProc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 678 */
- int (*tcl_NRCallObjProc2) (Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2, void *clientData, size_t objc, Tcl_Obj *const objv[]); /* 679 */
+ int (*tcl_NRCallObjProc2) (Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2, void *clientData, ptrdiff_t objc, Tcl_Obj *const objv[]); /* 679 */
int (*tcl_GetNumberFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, void **clientDataPtr, int *typePtr); /* 680 */
- int (*tcl_GetNumber) (Tcl_Interp *interp, const char *bytes, size_t numBytes, void **clientDataPtr, int *typePtr); /* 681 */
+ int (*tcl_GetNumber) (Tcl_Interp *interp, const char *bytes, ptrdiff_t numBytes, void **clientDataPtr, int *typePtr); /* 681 */
int (*tcl_RemoveChannelMode) (Tcl_Interp *interp, Tcl_Channel chan, int mode); /* 682 */
Tcl_Size (*tcl_GetEncodingNulLength) (Tcl_Encoding encoding); /* 683 */
int (*tcl_GetWideUIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideUInt *uwidePtr); /* 684 */
@@ -4214,7 +4214,7 @@ extern const TclStubs *tclStubsPtr;
# define Tcl_SetPanicProc(arg) ((void)((Tcl_SetPanicProc)(arg)))
# endif
# define Tcl_MainEx Tcl_MainExW
- EXTERN void Tcl_MainExW(int argc, wchar_t **argv,
+ EXTERN void Tcl_MainExW(Tcl_Size argc, wchar_t **argv,
Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
#elif !defined(TCL_NO_DEPRECATED)
# define Tcl_FindExecutable(arg) ((void)((Tcl_FindExecutable)(arg)))
@@ -4394,7 +4394,7 @@ extern const TclStubs *tclStubsPtr;
#endif
#if defined(USE_TCL_STUBS)
#define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tclGetBytesFromObj(interp, objPtr, (int *)(sizePtr)) : tclStubsPtr->tcl_GetBytesFromObj(interp, objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tclGetBytesFromObj(interp, objPtr, (int *)(sizePtr)) : tclStubsPtr->tcl_GetBytesFromObj(interp, objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
(tclStubsPtr->tcl_GetIndexFromObjStruct((interp), (objPtr), (tablePtr), (offset), (msg), (flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
@@ -4405,15 +4405,15 @@ extern const TclStubs *tclStubsPtr;
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
#ifdef TCL_NO_DEPRECATED
#define Tcl_GetStringFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetStringFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetStringFromObj(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetStringFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetStringFromObj(objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetByteArrayFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetByteArrayFromObj(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetByteArrayFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetByteArrayFromObj(objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetUnicodeFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetUnicodeFromObj(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? tclStubsPtr->tcl_GetUnicodeFromObj(objPtr, (int *)(sizePtr)) : tclStubsPtr->tclGetUnicodeFromObj(objPtr, (ptrdiff_t *)(sizePtr)))
#endif
#else
#define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? (TclGetBytesFromObj)(interp, objPtr, (int *)(sizePtr)) : (Tcl_GetBytesFromObj)(interp, objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? (TclGetBytesFromObj)(interp, objPtr, (int *)(sizePtr)) : (Tcl_GetBytesFromObj)(interp, objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
((Tcl_GetIndexFromObjStruct)((interp), (objPtr), (tablePtr), (offset), (msg), (flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
@@ -4424,11 +4424,11 @@ extern const TclStubs *tclStubsPtr;
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
#ifdef TCL_NO_DEPRECATED
#define Tcl_GetStringFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetStringFromObj)(objPtr, (int *)(sizePtr)) : (TclGetStringFromObj)(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetStringFromObj)(objPtr, (int *)(sizePtr)) : (TclGetStringFromObj)(objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetByteArrayFromObj)(objPtr, (int *)(sizePtr)) : TclGetByteArrayFromObj(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetByteArrayFromObj)(objPtr, (int *)(sizePtr)) : TclGetByteArrayFromObj(objPtr, (ptrdiff_t *)(sizePtr)))
#define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
- (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetUnicodeFromObj)(objPtr, (int *)(sizePtr)) : TclGetUnicodeFromObj(objPtr, (size_t *)(sizePtr)))
+ (sizeof(*(sizePtr)) <= sizeof(int) ? (Tcl_GetUnicodeFromObj)(objPtr, (int *)(sizePtr)) : TclGetUnicodeFromObj(objPtr, (ptrdiff_t *)(sizePtr)))
#endif
#endif
@@ -4485,31 +4485,31 @@ extern const TclStubs *tclStubsPtr;
# undef Tcl_ListObjGetElements
# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) == sizeof(int) \
? tclStubsPtr->tcl_ListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \
- : tclStubsPtr->tclListObjGetElements((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr)))
+ : tclStubsPtr->tclListObjGetElements((interp), (listPtr), (ptrdiff_t *)(void *)(objcPtr), (objvPtr)))
# undef Tcl_ListObjLength
# define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*(lengthPtr)) == sizeof(int) \
? tclStubsPtr->tcl_ListObjLength((interp), (listPtr), (int *)(void *)(lengthPtr)) \
- : tclStubsPtr->tclListObjLength((interp), (listPtr), (size_t *)(void *)(lengthPtr)))
+ : tclStubsPtr->tclListObjLength((interp), (listPtr), (ptrdiff_t *)(void *)(lengthPtr)))
# undef Tcl_DictObjSize
# define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) == sizeof(int) \
? tclStubsPtr->tcl_DictObjSize((interp), (dictPtr), (int *)(void *)(sizePtr)) \
- : tclStubsPtr->tclDictObjSize((interp), (dictPtr), (size_t *)(void *)(sizePtr)))
+ : tclStubsPtr->tclDictObjSize((interp), (dictPtr), (ptrdiff_t *)(void *)(sizePtr)))
# undef Tcl_SplitList
# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \
? tclStubsPtr->tcl_SplitList((interp), (listStr), (int *)(void *)(argcPtr), (argvPtr)) \
- : tclStubsPtr->tclSplitList((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr)))
+ : tclStubsPtr->tclSplitList((interp), (listStr), (ptrdiff_t *)(void *)(argcPtr), (argvPtr)))
# undef Tcl_SplitPath
# define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \
? tclStubsPtr->tcl_SplitPath((path), (int *)(void *)(argcPtr), (argvPtr)) \
- : tclStubsPtr->tclSplitPath((path), (size_t *)(void *)(argcPtr), (argvPtr)))
+ : tclStubsPtr->tclSplitPath((path), (ptrdiff_t *)(void *)(argcPtr), (argvPtr)))
# undef Tcl_FSSplitPath
# define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) == sizeof(int) \
? tclStubsPtr->tcl_FSSplitPath((pathPtr), (int *)(void *)(lenPtr)) \
- : tclStubsPtr->tclFSSplitPath((pathPtr), (size_t *)(void *)(lenPtr)))
+ : tclStubsPtr->tclFSSplitPath((pathPtr), (ptrdiff_t *)(void *)(lenPtr)))
# undef Tcl_ParseArgsObjv
# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \
? tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \
- : tclStubsPtr->tclParseArgsObjv((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv)))
+ : tclStubsPtr->tclParseArgsObjv((interp), (argTable), (ptrdiff_t *)(void *)(objcPtr), (objv), (remObjv)))
#endif /* TCL_NO_DEPRECATED */
#else
# define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \
@@ -4527,25 +4527,25 @@ extern const TclStubs *tclStubsPtr;
#ifdef TCL_NO_DEPRECATED
# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) == sizeof(int) \
? (Tcl_ListObjGetElements)((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \
- : TclListObjGetElements((interp), (listPtr), (size_t *)(void *)(objcPtr), (objvPtr)))
+ : TclListObjGetElements((interp), (listPtr), (ptrdiff_t *)(void *)(objcPtr), (objvPtr)))
# define Tcl_ListObjLength(interp, listPtr, lengthPtr) (sizeof(*(lengthPtr)) == sizeof(int) \
? (Tcl_ListObjLength)((interp), (listPtr), (int *)(void *)(lengthPtr)) \
- : TclListObjLength((interp), (listPtr), (size_t *)(void *)(lengthPtr)))
+ : TclListObjLength((interp), (listPtr), (ptrdiff_t *)(void *)(lengthPtr)))
# define Tcl_DictObjSize(interp, dictPtr, sizePtr) (sizeof(*(sizePtr)) == sizeof(int) \
? (Tcl_DictObjSize)((interp), (dictPtr), (int *)(void *)(sizePtr)) \
- : TclDictObjSize((interp), (dictPtr), (size_t *)(void *)(sizePtr)))
+ : TclDictObjSize((interp), (dictPtr), (ptrdiff_t *)(void *)(sizePtr)))
# define Tcl_SplitList(interp, listStr, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \
? (Tcl_SplitList)((interp), (listStr), (int *)(void *)(argcPtr), (argvPtr)) \
- : TclSplitList((interp), (listStr), (size_t *)(void *)(argcPtr), (argvPtr)))
+ : TclSplitList((interp), (listStr), (ptrdiff_t *)(void *)(argcPtr), (argvPtr)))
# define Tcl_SplitPath(path, argcPtr, argvPtr) (sizeof(*(argcPtr)) == sizeof(int) \
? (Tcl_SplitPath)((path), (int *)(void *)(argcPtr), (argvPtr)) \
- : TclSplitPath((path), (size_t *)(void *)(argcPtr), (argvPtr)))
+ : TclSplitPath((path), (ptrdiff_t *)(void *)(argcPtr), (argvPtr)))
# define Tcl_FSSplitPath(pathPtr, lenPtr) (sizeof(*(lenPtr)) == sizeof(int) \
? (Tcl_FSSplitPath)((pathPtr), (int *)(void *)(lenPtr)) \
- : TclFSSplitPath((pathPtr), (size_t *)(void *)(lenPtr)))
+ : TclFSSplitPath((pathPtr), (ptrdiff_t *)(void *)(lenPtr)))
# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \
? (Tcl_ParseArgsObjv)((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \
- : TclParseArgsObjv((interp), (argTable), (size_t *)(void *)(objcPtr), (objv), (remObjv)))
+ : TclParseArgsObjv((interp), (argTable), (ptrdiff_t *)(void *)(objcPtr), (objv), (remObjv)))
#endif /* TCL_NO_DEPRECATED */
#endif
diff --git a/generic/tclOO.h b/generic/tclOO.h
index 6f18491..775bd32 100644
--- a/generic/tclOO.h
+++ b/generic/tclOO.h
@@ -63,7 +63,7 @@ typedef struct Tcl_ObjectContext_ *Tcl_ObjectContext;
typedef int (Tcl_MethodCallProc)(void *clientData, Tcl_Interp *interp,
Tcl_ObjectContext objectContext, int objc, Tcl_Obj *const *objv);
typedef int (Tcl_MethodCallProc2)(void *clientData, Tcl_Interp *interp,
- Tcl_ObjectContext objectContext, size_t objc, Tcl_Obj *const *objv);
+ Tcl_ObjectContext objectContext, ptrdiff_t objc, Tcl_Obj *const *objv);
typedef void (Tcl_MethodDeleteProc)(void *clientData);
typedef int (Tcl_CloneProc)(Tcl_Interp *interp, void *oldClientData,
void **newClientData);
diff --git a/generic/tclObj.c b/generic/tclObj.c
index fae401d..e60042c 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -1721,7 +1721,7 @@ char *
TclGetStringFromObj(
Tcl_Obj *objPtr, /* Object whose string rep byte pointer should
* be returned. */
- size_t *lengthPtr) /* If non-NULL, the location where the string
+ ptrdiff_t *lengthPtr) /* If non-NULL, the location where the string
* rep's byte array length should * be stored.
* If NULL, no length is stored. */
{
@@ -1751,11 +1751,7 @@ TclGetStringFromObj(
}
}
if (lengthPtr != NULL) {
-#if TCL_MAJOR_VERSION > 8
- *lengthPtr = objPtr->length;
-#else
- *lengthPtr = ((size_t)(unsigned)(objPtr->length + 1)) - 1;
-#endif
+ *lengthPtr = ((ptrdiff_t)(unsigned)(objPtr->length + 1)) - 1;
}
return objPtr->bytes;
}
@@ -4041,7 +4037,7 @@ int
Tcl_GetNumber(
Tcl_Interp *interp,
const char *bytes,
- size_t numBytes,
+ ptrdiff_t numBytes,
void **clientDataPtr,
int *typePtr)
{
@@ -4055,10 +4051,10 @@ Tcl_GetNumber(
bytes = &tclEmptyString;
numBytes = 0;
}
- if (numBytes == (size_t)TCL_INDEX_NONE) {
- numBytes = strlen(bytes);
+ if (numBytes < 0) {
+ numBytes = (ptrdiff_t)strlen(bytes);
}
- if (numBytes > INT_MAX) {
+ if ((size_t)numBytes > INT_MAX) {
if (interp) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"max size for a Tcl value (%d bytes) exceeded", INT_MAX));
diff --git a/generic/tclProc.c b/generic/tclProc.c
index d02cac2..3abf3c3 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -1690,7 +1690,7 @@ NRInterpProc2(
* interpreted. */
Tcl_Interp *interp,/* Interpreter in which procedure was
* invoked. */
- size_t objc, /* Count of number of arguments to this
+ ptrdiff_t objc, /* Count of number of arguments to this
* procedure. */
Tcl_Obj *const objv[]) /* Argument value objects. */
{
@@ -1709,7 +1709,7 @@ ObjInterpProc2(
* interpreted. */
Tcl_Interp *interp,/* Interpreter in which procedure was
* invoked. */
- size_t objc, /* Count of number of arguments to this
+ ptrdiff_t objc, /* Count of number of arguments to this
* procedure. */
Tcl_Obj *const objv[]) /* Argument value objects. */
{
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 340ef50..a6ed49f 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -987,7 +987,7 @@ unsigned short *
TclGetUnicodeFromObj(
Tcl_Obj *objPtr, /* The object to find the unicode string
* for. */
- size_t *lengthPtr) /* If non-NULL, the location where the string
+ ptrdiff_t *lengthPtr) /* If non-NULL, the location where the string
* rep's unichar length should be stored. If
* NULL, no length is stored. */
{
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index bab1935..e09d74d 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -97,7 +97,7 @@ static void uniCodePanic(void) {
}
# define Tcl_GetUnicode (unsigned short *(*)(Tcl_Obj *))(void *)uniCodePanic
# define Tcl_GetUnicodeFromObj (unsigned short *(*)(Tcl_Obj *, int *))(void *)uniCodePanic
-# define TclGetUnicodeFromObj (unsigned short *(*)(Tcl_Obj *, size_t *))(void *)uniCodePanic
+# define TclGetUnicodeFromObj (unsigned short *(*)(Tcl_Obj *, ptrdiff_t *))(void *)uniCodePanic
# define Tcl_NewUnicodeObj (Tcl_Obj *(*)(const unsigned short *, int))(void *)uniCodePanic
# define Tcl_SetUnicodeObj (void(*)(Tcl_Obj *, const unsigned short *, int))(void *)uniCodePanic
# define Tcl_AppendUnicodeToObj (void(*)(Tcl_Obj *, const unsigned short *, int))(void *)uniCodePanic
@@ -138,7 +138,7 @@ static const char *TclUtfPrev(const char *src, const char *start) {
}
int TclListObjGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr,
- size_t *objcPtr, Tcl_Obj ***objvPtr) {
+ ptrdiff_t *objcPtr, Tcl_Obj ***objvPtr) {
int n, result = Tcl_ListObjGetElements(interp, listPtr, &n, objvPtr);
if ((result == TCL_OK) && objcPtr) {
*objcPtr = n;
@@ -146,7 +146,7 @@ int TclListObjGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr,
return result;
}
int TclListObjLength(Tcl_Interp *interp, Tcl_Obj *listPtr,
- size_t *lengthPtr) {
+ ptrdiff_t *lengthPtr) {
int n;
int result = Tcl_ListObjLength(interp, listPtr, &n);
if ((result == TCL_OK) && lengthPtr) {
@@ -155,14 +155,14 @@ int TclListObjLength(Tcl_Interp *interp, Tcl_Obj *listPtr,
return result;
}
int TclDictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
- size_t *sizePtr) {
+ ptrdiff_t *sizePtr) {
int n, result = Tcl_DictObjSize(interp, dictPtr, &n);
if ((result == TCL_OK) && sizePtr) {
*sizePtr = n;
}
return result;
}
-int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr,
+int TclSplitList(Tcl_Interp *interp, const char *listStr, ptrdiff_t *argcPtr,
const char ***argvPtr) {
int n;
int result = Tcl_SplitList(interp, listStr, &n, argvPtr);
@@ -171,14 +171,14 @@ int TclSplitList(Tcl_Interp *interp, const char *listStr, size_t *argcPtr,
}
return result;
}
-void TclSplitPath(const char *path, size_t *argcPtr, const char ***argvPtr) {
+void TclSplitPath(const char *path, ptrdiff_t *argcPtr, const char ***argvPtr) {
int n;
Tcl_SplitPath(path, &n, argvPtr);
if (argcPtr) {
*argcPtr = n;
}
}
-Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) {
+Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, ptrdiff_t *lenPtr) {
int n;
Tcl_Obj *result = Tcl_FSSplitPath(pathPtr, &n);
if (result && lenPtr) {
@@ -187,7 +187,7 @@ Tcl_Obj *TclFSSplitPath(Tcl_Obj *pathPtr, size_t *lenPtr) {
return result;
}
int TclParseArgsObjv(Tcl_Interp *interp,
- const Tcl_ArgvInfo *argTable, size_t *objcPtr, Tcl_Obj *const *objv,
+ const Tcl_ArgvInfo *argTable, ptrdiff_t *objcPtr, Tcl_Obj *const *objv,
Tcl_Obj ***remObjv) {
int n, result;
if (*objcPtr > INT_MAX) {
diff --git a/unix/dltest/pkgt.c b/unix/dltest/pkgt.c
index e8047db..6264aec 100644
--- a/unix/dltest/pkgt.c
+++ b/unix/dltest/pkgt.c
@@ -16,10 +16,10 @@
static int TraceProc2 (
void *clientData,
Tcl_Interp *interp,
- size_t level,
+ ptrdiff_t level,
const char *command,
Tcl_Command commandInfo,
- size_t objc,
+ ptrdiff_t objc,
struct Tcl_Obj *const *objv)
{
(void)clientData;
@@ -55,12 +55,12 @@ static int
Pkgt_EqObjCmd2(
void *dummy, /* Not used. */
Tcl_Interp *interp, /* Current interpreter. */
- size_t objc, /* Number of arguments. */
+ ptrdiff_t objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
Tcl_WideInt result;
const char *str1, *str2;
- size_t len1, len2;
+ ptrdiff_t len1, len2;
(void)dummy;
if (objc != 3) {
diff --git a/win/tclAppInit.c b/win/tclAppInit.c
index 27eb164..a3914f1 100644
--- a/win/tclAppInit.c
+++ b/win/tclAppInit.c
@@ -141,7 +141,7 @@ _tmain(
TclZipfs_AppHook(&argc, &argv);
#endif
- Tcl_Main((size_t)argc, argv, TCL_LOCAL_APPINIT);
+ Tcl_Main(argc, argv, TCL_LOCAL_APPINIT);
return 0; /* Needed only to prevent compiler warning. */
}