Huw Davies (@huw) commented about dlls/combase/roapi.c:
*out = NULL;
+ /* search activation context first */ + data.cbSize = sizeof(data); + if (FindActCtxSectionStringW(FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX, NULL, + ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES, classid, &data)) + { + struct activatable_class_data *activatable_class = (struct activatable_class_data *)data.lpData; + void *ptr = (BYTE *)data.lpSectionBase + activatable_class->module_offset; + *out = wcsdup(ptr);
This is allocating with malloc() while the other branch uses the process heap. It wouldn't be a bad idea to move the function over to malloc() first. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/95#note_1009