Esme Povirk (@madewokherd) commented about dlls/uiautomationcore/uia_event.c:
- struct uia_event *event;
- VARIANT node;
+};
+static HRESULT uia_event_queue_post_event(struct uia_event *event, VARIANT node, struct uia_event_args *args) +{
- struct uia_queue_event *queue_event = heap_alloc_zero(sizeof(*queue_event));
- if (!queue_event)
return E_OUTOFMEMORY;
- IWineUiaEvent_AddRef(&event->IWineUiaEvent_iface);
- InterlockedIncrement(&args->ref);
- queue_event->args = args;
- queue_event->event = event;
- queue_event->node = node;
How do you make sure the node will still be valid when this event is processed?