20 Jun
2023
20 Jun
'23
8:34 p.m.
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?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3119#note_36348