summaryrefslogtreecommitdiffstats
path: root/tk8.6/generic/ttk/ttkTrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'tk8.6/generic/ttk/ttkTrace.c')
-rw-r--r--tk8.6/generic/ttk/ttkTrace.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tk8.6/generic/ttk/ttkTrace.c b/tk8.6/generic/ttk/ttkTrace.c
index ba66db4..e6eead2 100644
--- a/tk8.6/generic/ttk/ttkTrace.c
+++ b/tk8.6/generic/ttk/ttkTrace.c
@@ -26,8 +26,8 @@ static char *
VarTraceProc(
ClientData clientData, /* Widget record pointer */
Tcl_Interp *interp, /* Interpreter containing variable. */
- const char *name1, /* (unused) */
- const char *name2, /* (unused) */
+ const char *name1, /* Name of variable. */
+ const char *name2, /* Second part of variable name. */
int flags) /* Information about what happened. */
{
Ttk_TraceHandle *tracePtr = clientData;
@@ -38,6 +38,17 @@ VarTraceProc(
return NULL;
}
+ /*
+ * See ticket [5d991b82].
+ */
+
+ if (tracePtr->varnameObj == NULL) {
+ Tcl_UntraceVar2(interp, name1, name2,
+ TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
+ VarTraceProc, clientData);
+ return NULL;
+ }
+
name = Tcl_GetString(tracePtr->varnameObj);
/*