Skip to content

Commit a90bc45

Browse files
author
jan.nijtmans
committed
int -> size_t in Tcl_CmdObjTraceProc2 (for 'level'). Add missing documentation
1 parent 2afe485 commit a90bc45

File tree

6 files changed

+153
-129
lines changed

6 files changed

+153
-129
lines changed

doc/CrtTrace.3

+19-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ details of the calling sequence.
4747
.AP Tcl_CmdTraceProc *proc in
4848
Procedure to call for each command that is executed. See below for
4949
details on the calling sequence.
50-
.AP ClientData clientData in
50+
.AP void *clientData in
5151
Arbitrary one-word value to pass to \fIobjProc\fR, \fIobjProc2\fR or \fIproc\fR.
5252
.AP Tcl_CmdObjTraceDeleteProc *deleteProc in
5353
Procedure to call when the trace is deleted. See below for details of
@@ -72,7 +72,7 @@ interpreter.
7272
.PP
7373
.CS
7474
typedef int \fBTcl_CmdObjTraceProc\fR(
75-
\fBClientData\fR \fIclientData\fR,
75+
\fBvoid *\fR \fIclientData\fR,
7676
\fBTcl_Interp\fR* \fIinterp\fR,
7777
int \fIlevel\fR,
7878
const char *\fIcommand\fR,
@@ -81,6 +81,20 @@ typedef int \fBTcl_CmdObjTraceProc\fR(
8181
\fBTcl_Obj\fR *const \fIobjv\fR[]);
8282
.CE
8383
.PP
84+
\fIobjProc2\fR should have arguments and result that match the type,
85+
\fBTcl_CmdObjTraceProc2\fR:
86+
.PP
87+
.CS
88+
typedef int \fBTcl_CmdObjTraceProc2\fR(
89+
\fBvoid *\fR \fIclientData\fR,
90+
\fBTcl_Interp\fR* \fIinterp\fR,
91+
size_t \fIlevel\fR,
92+
const char *\fIcommand\fR,
93+
\fBTcl_Command\fR \fIcommandToken\fR,
94+
size_t \fIobjc\fR,
95+
\fBTcl_Obj\fR *const \fIobjv\fR[]);
96+
.CE
97+
.PP
8498
The \fIclientData\fR and \fIinterp\fR parameters are copies of the
8599
corresponding arguments given to \fBTcl_CreateTrace\fR.
86100
\fIClientData\fR typically points to an application-specific data
@@ -146,7 +160,7 @@ When \fBTcl_DeleteTrace\fR is called, the interpreter invokes the
146160
.PP
147161
.CS
148162
typedef void \fBTcl_CmdObjTraceDeleteProc\fR(
149-
\fBClientData\fR \fIclientData\fR);
163+
\fBvoid *\fR \fIclientData\fR);
150164
.CE
151165
.PP
152166
The \fIclientData\fR parameter will be the same as the
@@ -162,12 +176,12 @@ match the type \fBTcl_CmdTraceProc\fR:
162176
.PP
163177
.CS
164178
typedef void \fBTcl_CmdTraceProc\fR(
165-
ClientData \fIclientData\fR,
179+
void *\fIclientData\fR,
166180
Tcl_Interp *\fIinterp\fR,
167181
int \fIlevel\fR,
168182
char *\fIcommand\fR,
169183
Tcl_CmdProc *\fIcmdProc\fR,
170-
ClientData \fIcmdClientData\fR,
184+
void *\fIcmdClientData\fR,
171185
int \fIargc\fR,
172186
const char *\fIargv\fR[]);
173187
.CE

generic/tcl.decls

+3-3
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ declare 98 {
374374
Tcl_TimerProc *proc, void *clientData)
375375
}
376376
declare 99 {
377-
Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
377+
Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, Tcl_Size level,
378378
Tcl_CmdTraceProc *proc, void *clientData)
379379
}
380380
declare 100 {
@@ -1722,7 +1722,7 @@ declare 482 {
17221722

17231723
# TIP#32 (object-enabled traces) kbk
17241724
declare 483 {
1725-
Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level, int flags,
1725+
Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, Tcl_Size level, int flags,
17261726
Tcl_CmdObjTraceProc *objProc, void *clientData,
17271727
Tcl_CmdObjTraceDeleteProc *delProc)
17281728
}
@@ -2517,7 +2517,7 @@ declare 676 {
25172517
Tcl_CmdDeleteProc *deleteProc)
25182518
}
25192519
declare 677 {
2520-
Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, int level, int flags,
2520+
Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, Tcl_Size level, int flags,
25212521
Tcl_CmdObjTraceProc2 *objProc2, void *clientData,
25222522
Tcl_CmdObjTraceDeleteProc *delProc)
25232523
}

generic/tcl.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ typedef int (Tcl_CmdObjTraceProc) (void *clientData, Tcl_Interp *interp,
674674
int level, const char *command, Tcl_Command commandInfo, int objc,
675675
struct Tcl_Obj *const *objv);
676676
typedef int (Tcl_CmdObjTraceProc2) (void *clientData, Tcl_Interp *interp,
677-
int level, const char *command, Tcl_Command commandInfo, size_t objc,
677+
size_t level, const char *command, Tcl_Command commandInfo, size_t objc,
678678
struct Tcl_Obj *const *objv);
679679
typedef void (Tcl_CmdObjTraceDeleteProc) (void *clientData);
680680
typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,

generic/tclDecls.h

+10-8
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ EXTERN Tcl_Interp * Tcl_CreateChild(Tcl_Interp *interp, const char *name,
360360
EXTERN Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
361361
Tcl_TimerProc *proc, void *clientData);
362362
/* 99 */
363-
EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
363+
EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, Tcl_Size level,
364364
Tcl_CmdTraceProc *proc, void *clientData);
365365
/* 100 */
366366
EXTERN void Tcl_DeleteAssocData(Tcl_Interp *interp,
@@ -1451,8 +1451,9 @@ EXTERN int Tcl_EvalTokensStandard(Tcl_Interp *interp,
14511451
/* 482 */
14521452
EXTERN void Tcl_GetTime(Tcl_Time *timeBuf);
14531453
/* 483 */
1454-
EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level,
1455-
int flags, Tcl_CmdObjTraceProc *objProc,
1454+
EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp,
1455+
Tcl_Size level, int flags,
1456+
Tcl_CmdObjTraceProc *objProc,
14561457
void *clientData,
14571458
Tcl_CmdObjTraceDeleteProc *delProc);
14581459
/* 484 */
@@ -2012,8 +2013,9 @@ EXTERN Tcl_Command Tcl_CreateObjCommand2(Tcl_Interp *interp,
20122013
void *clientData,
20132014
Tcl_CmdDeleteProc *deleteProc);
20142015
/* 677 */
2015-
EXTERN Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp, int level,
2016-
int flags, Tcl_CmdObjTraceProc2 *objProc2,
2016+
EXTERN Tcl_Trace Tcl_CreateObjTrace2(Tcl_Interp *interp,
2017+
Tcl_Size level, int flags,
2018+
Tcl_CmdObjTraceProc2 *objProc2,
20172019
void *clientData,
20182020
Tcl_CmdObjTraceDeleteProc *delProc);
20192021
/* 678 */
@@ -2164,7 +2166,7 @@ typedef struct TclStubs {
21642166
Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
21652167
Tcl_Interp * (*tcl_CreateChild) (Tcl_Interp *interp, const char *name, int isSafe); /* 97 */
21662168
Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, void *clientData); /* 98 */
2167-
Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, void *clientData); /* 99 */
2169+
Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, Tcl_Size level, Tcl_CmdTraceProc *proc, void *clientData); /* 99 */
21682170
void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
21692171
void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, void *clientData); /* 101 */
21702172
void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, void *clientData); /* 102 */
@@ -2556,7 +2558,7 @@ typedef struct TclStubs {
25562558
void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
25572559
int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, Tcl_Size count); /* 481 */
25582560
void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2559-
Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2561+
Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc *objProc, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
25602562
int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
25612563
int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
25622564
Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
@@ -2750,7 +2752,7 @@ typedef struct TclStubs {
27502752
int (*tcl_GetBool) (Tcl_Interp *interp, const char *src, int flags, char *charPtr); /* 674 */
27512753
int (*tcl_GetBoolFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags, char *charPtr); /* 675 */
27522754
Tcl_Command (*tcl_CreateObjCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 676 */
2753-
Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
2755+
Tcl_Trace (*tcl_CreateObjTrace2) (Tcl_Interp *interp, Tcl_Size level, int flags, Tcl_CmdObjTraceProc2 *objProc2, void *clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 677 */
27542756
Tcl_Command (*tcl_NRCreateCommand2) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc2 *proc, Tcl_ObjCmdProc2 *nreProc2, void *clientData, Tcl_CmdDeleteProc *deleteProc); /* 678 */
27552757
int (*tcl_NRCallObjProc2) (Tcl_Interp *interp, Tcl_ObjCmdProc2 *objProc2, void *clientData, size_t objc, Tcl_Obj *const objv[]); /* 679 */
27562758
int (*tcl_GetNumberFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, void **clientDataPtr, int *typePtr); /* 680 */

generic/tclInt.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ typedef void (ProcErrorProc)(Tcl_Interp *interp, Tcl_Obj *procNameObj);
10191019
*/
10201020

10211021
typedef struct Trace {
1022-
int level; /* Only trace commands at nesting level less
1022+
Tcl_Size level; /* Only trace commands at nesting level less
10231023
* than or equal to this. */
10241024
Tcl_CmdObjTraceProc *proc; /* Procedure to call to trace command. */
10251025
void *clientData; /* Arbitrary value to pass to proc. */

0 commit comments

Comments
 (0)