diff options
| -rw-r--r-- | doc/TraceVar.3 | 8 | ||||
| -rw-r--r-- | generic/tclTest.c | 9 |
2 files changed, 7 insertions, 10 deletions
diff --git a/doc/TraceVar.3 b/doc/TraceVar.3 index 19cb467..c3edfa4 100644 --- a/doc/TraceVar.3 +++ b/doc/TraceVar.3 @@ -331,11 +331,11 @@ trace procedures will always be invoked. .SH "RESTRICTIONS" .PP A trace procedure can be called at any time, even when there -is a partially formed result in the interpreter's result area. If +are partially formed results stored in the interpreter. If the trace procedure does anything that could damage this result (such -as calling \fBTcl_Eval\fR) then it must save the original values of -the interpreter's \fBresult\fR and \fBfreeProc\fR fields and restore -them before it returns. +as calling \fBTcl_Eval\fR) then it must use the \fBTcl_SaveInterpState\fR +and related routines to save and restore the original state of +the interpreter before it returns. .SH "UNDEFINED VARIABLES" .PP It is legal to set a trace on an undefined variable. diff --git a/generic/tclTest.c b/generic/tclTest.c index 5fe1370..8476ecb 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -3327,10 +3327,7 @@ TestlinkarrayCmd( }; int optionIndex, typeIndex, readonly, i, size, length; char *name, *arg; - long addr; /* Wrong on Windows, but that's MS's fault for - * not supporting <stdint.h> correctly. They - * can suffer the warnings; the rest of us - * shouldn't have to! */ + Tcl_WideInt addr; if (objc < 2) { Tcl_WrongNumArgs(interp, 1, objv, "option args"); @@ -3388,7 +3385,7 @@ TestlinkarrayCmd( */ if (i < objc) { - if (Tcl_GetLongFromObj(interp, objv[i], &addr) == TCL_ERROR) { + if (Tcl_GetWideIntFromObj(interp, objv[i], &addr) == TCL_ERROR) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "wrong address value", -1)); return TCL_ERROR; @@ -3396,7 +3393,7 @@ TestlinkarrayCmd( } else { addr = 0; } - return Tcl_LinkArray(interp, name, (void *) addr, + return Tcl_LinkArray(interp, name, INT2PTR(addr), LinkTypes[typeIndex] | readonly, size); } return TCL_OK; |
