summaryrefslogtreecommitdiffstats
path: root/generic/tkUtil.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-02-05 13:32:16 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-02-05 13:32:16 (GMT)
commitadb81ce974986627e7f381421adb9452a34a5e47 (patch)
tree3272bb94f987d5a8ac6d916334daebd85f7693f1 /generic/tkUtil.c
parent3682b4165698b83f1604f1ce29866219b5497bd1 (diff)
downloadtk-adb81ce974986627e7f381421adb9452a34a5e47.zip
tk-adb81ce974986627e7f381421adb9452a34a5e47.tar.gz
tk-adb81ce974986627e7f381421adb9452a34a5e47.tar.bz2
Protect better against possible confusion between XGenericEvent's and (Tcl-specific) XVirtualEvent's: If "name" == NULL, assume it's a XGenericEvent, so don't crash on that just ignore.
Also don't use "virtual" as variable name.
Diffstat (limited to 'generic/tkUtil.c')
-rw-r--r--generic/tkUtil.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/generic/tkUtil.c b/generic/tkUtil.c
index 89f68be..85cb06d 100644
--- a/generic/tkUtil.c
+++ b/generic/tkUtil.c
@@ -1176,7 +1176,7 @@ TkSendVirtualEvent(
const char *eventName,
Tcl_Obj *detail)
{
- union {XEvent general; XVirtualEvent virtual;} event;
+ union {XEvent general; XVirtualEvent virt;} event;
memset(&event, 0, sizeof(event));
event.general.xany.type = VirtualEvent;
@@ -1184,10 +1184,8 @@ TkSendVirtualEvent(
event.general.xany.send_event = False;
event.general.xany.window = Tk_WindowId(target);
event.general.xany.display = Tk_Display(target);
- event.virtual.name = Tk_GetUid(eventName);
- if (detail != NULL) {
- event.virtual.user_data = detail;
- }
+ event.virt.name = Tk_GetUid(eventName);
+ event.virt.user_data = detail;
Tk_QueueWindowEvent(&event.general, TCL_QUEUE_TAIL);
}