Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | New attempt to fix Bug 3062331 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | bug-3062331 |
Files: | files | file ages | folders |
SHA1: |
e1302383c5fd8b1ad53a696049c363d0 |
User & Date: | dgp 2011-06-16 20:27:22 |
Context
2011-06-17
| ||
18:06 | Add comments explaining new code. Closed-Leaf check-in: b7530cff user: dgp tags: bug-3062331 | |
2011-06-16
| ||
20:27 | New attempt to fix Bug 3062331 check-in: e1302383 user: dgp tags: bug-3062331 | |
11:55 | Sync with win/tcl.m4 from Tcl check-in: 90727609 user: jan.nijtmans tags: core-8-5-branch | |
Changes
Changes to generic/ttk/ttkTrace.c.
︙ | ︙ | |||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 | name = Tcl_GetString(tracePtr->varnameObj); /* * If the variable is being unset, then re-establish the trace: */ if (flags & TCL_TRACE_DESTROYED) { Tcl_TraceVar(interp, name, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, VarTraceProc, clientData); tracePtr->callback(tracePtr->clientData, NULL); return NULL; } | > > > > > | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | name = Tcl_GetString(tracePtr->varnameObj); /* * If the variable is being unset, then re-establish the trace: */ if (flags & TCL_TRACE_DESTROYED) { if (tracePtr->interp == NULL) { Tcl_DecrRefCount(tracePtr->varnameObj); ckfree((ClientData)tracePtr); return NULL; } Tcl_TraceVar(interp, name, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, VarTraceProc, clientData); tracePtr->callback(tracePtr->clientData, NULL); return NULL; } |
︙ | ︙ | |||
100 101 102 103 104 105 106 107 108 109 110 111 112 113 | /* * Ttk_UntraceVariable -- * Remove previously-registered trace and free the handle. */ void Ttk_UntraceVariable(Ttk_TraceHandle *h) { if (h) { Tcl_UntraceVar(h->interp, Tcl_GetString(h->varnameObj), TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, VarTraceProc, (ClientData)h); Tcl_DecrRefCount(h->varnameObj); ckfree((ClientData)h); } } | > > > > > > > > > > > > | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | /* * Ttk_UntraceVariable -- * Remove previously-registered trace and free the handle. */ void Ttk_UntraceVariable(Ttk_TraceHandle *h) { if (h) { ClientData cd = NULL; while ((cd = Tcl_VarTraceInfo(h->interp, Tcl_GetString(h->varnameObj), 0, VarTraceProc, cd)) != NULL) { if (cd == (ClientData) h) { break; } } if (cd == NULL) { h->interp = NULL; return; } Tcl_UntraceVar(h->interp, Tcl_GetString(h->varnameObj), TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, VarTraceProc, (ClientData)h); Tcl_DecrRefCount(h->varnameObj); ckfree((ClientData)h); } } |
︙ | ︙ |