From b0aac11cdb0e31babc4c89aeda27223f4a731162 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 29 Aug 2022 20:53:44 +0000 Subject: Add 2 unused (internal) stub entries --- generic/tclInt.decls | 2 +- generic/tclIntDecls.h | 9 ++++++--- generic/tclStubInit.c | 3 ++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/generic/tclInt.decls b/generic/tclInt.decls index df39bef..b76d06b 100644 --- a/generic/tclInt.decls +++ b/generic/tclInt.decls @@ -957,7 +957,7 @@ declare 257 { Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc) } -declare 260 { +declare 261 { void TclUnusedStubEntry(void) } diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h index 4d98d00..a8bb18e 100644 --- a/generic/tclIntDecls.h +++ b/generic/tclIntDecls.h @@ -1078,9 +1078,10 @@ EXTERN void TclStaticPackage(Tcl_Interp *interp, #endif /* Slot 258 is reserved */ /* Slot 259 is reserved */ +/* Slot 260 is reserved */ #ifndef TclUnusedStubEntry_TCL_DECLARED #define TclUnusedStubEntry_TCL_DECLARED -/* 260 */ +/* 261 */ EXTERN void TclUnusedStubEntry(void); #endif @@ -1348,7 +1349,8 @@ typedef struct TclIntStubs { void (*tclStaticPackage) (Tcl_Interp *interp, CONST char *pkgName, Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc); /* 257 */ VOID *reserved258; VOID *reserved259; - void (*tclUnusedStubEntry) (void); /* 260 */ + VOID *reserved260; + void (*tclUnusedStubEntry) (void); /* 261 */ } TclIntStubs; extern TclIntStubs *tclIntStubsPtr; @@ -2094,9 +2096,10 @@ extern TclIntStubs *tclIntStubsPtr; #endif /* Slot 258 is reserved */ /* Slot 259 is reserved */ +/* Slot 260 is reserved */ #ifndef TclUnusedStubEntry #define TclUnusedStubEntry \ - (tclIntStubsPtr->tclUnusedStubEntry) /* 260 */ + (tclIntStubsPtr->tclUnusedStubEntry) /* 261 */ #endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 0bebc15..0d2a3c2 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -561,7 +561,8 @@ TclIntStubs tclIntStubs = { TclStaticPackage, /* 257 */ NULL, /* 258 */ NULL, /* 259 */ - TclUnusedStubEntry, /* 260 */ + NULL, /* 260 */ + TclUnusedStubEntry, /* 261 */ }; TclIntPlatStubs tclIntPlatStubs = { -- cgit v0.12 From 1aa64a54f72a97753e3cc7e75eb93ac625d66a33 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 29 Aug 2022 22:48:41 +0000 Subject: [37108037b9], patch 0004 --- generic/tclExecute.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 8ca56c9..af93636 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -169,11 +169,11 @@ static BuiltinFunc const tclBuiltinFuncTable[] = { typedef struct TEBCdata { ByteCode *codePtr; /* Constant until the BC returns */ /* -----------------------------------------*/ - ptrdiff_t *catchTop; /* These fields are used on return TO this */ + Tcl_Obj **catchTop; /* These fields are used on return TO this */ Tcl_Obj *auxObjList; /* this level: they record the state when a */ CmdFrame cmdFrame; /* new codePtr was received for NR */ /* execution. */ - void *stack[1]; /* Start of the actual combined catch and obj + Tcl_Obj *stack[1]; /* Start of the actual combined catch and obj * stacks; the struct will be expanded as * necessary */ } TEBCdata; @@ -1935,8 +1935,8 @@ ArgumentBCEnter( *---------------------------------------------------------------------- */ #define bcFramePtr (&TD->cmdFrame) -#define initCatchTop ((ptrdiff_t *) (TD->stack-1)) -#define initTosPtr ((Tcl_Obj **) (initCatchTop+codePtr->maxExceptDepth)) +#define initCatchTop (TD->stack-1) +#define initTosPtr (initCatchTop+codePtr->maxExceptDepth) #define esPtr (iPtr->execEnvPtr->execStackPtr) int @@ -6805,7 +6805,7 @@ TEBCresume( * stack. */ - *(++catchTop) = CURR_DEPTH; + *(++catchTop) = INT2PTR(CURR_DEPTH); TRACE(("%u => catchTop=%d, stackTop=%d\n", TclGetUInt4AtPtr(pc+1), (int) (catchTop - initCatchTop - 1), (int) CURR_DEPTH)); @@ -7717,8 +7717,8 @@ TEBCresume( while (auxObjList) { if ((catchTop != initCatchTop) - && (*catchTop > (ptrdiff_t) - auxObjList->internalRep.twoPtrValue.ptr2)) { + && (PTR2INT(*catchTop) > + PTR2INT(auxObjList->internalRep.twoPtrValue.ptr2))) { break; } POP_TAUX_OBJ(); @@ -7793,7 +7793,7 @@ TEBCresume( */ processCatch: - while (CURR_DEPTH > *catchTop) { + while (CURR_DEPTH > PTR2INT(*catchTop)) { valuePtr = POP_OBJECT(); TclDecrRefCount(valuePtr); } @@ -7802,7 +7802,7 @@ TEBCresume( fprintf(stdout, " ... found catch at %d, catchTop=%d, " "unwound to %ld, new pc %u\n", rangePtr->codeOffset, (int) (catchTop - initCatchTop - 1), - (long)*catchTop, (unsigned) rangePtr->catchOffset); + (long)PTR2INT(*catchTop), (unsigned) rangePtr->catchOffset); } #endif pc = (codePtr->codeStart + rangePtr->catchOffset); -- cgit v0.12 From b3500c7657421cc9309d8b22a9e40b8d70bd2d00 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 30 Aug 2022 06:53:35 +0000 Subject: gcc warning (-Wc++-compat) --- generic/tclExecute.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index af93636..91cce46 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -6805,7 +6805,7 @@ TEBCresume( * stack. */ - *(++catchTop) = INT2PTR(CURR_DEPTH); + *(++catchTop) = (Tcl_Obj *)INT2PTR(CURR_DEPTH); TRACE(("%u => catchTop=%d, stackTop=%d\n", TclGetUInt4AtPtr(pc+1), (int) (catchTop - initCatchTop - 1), (int) CURR_DEPTH)); -- cgit v0.12