Zebediah Figura (@zfigura) commented about dlls/setupapi/devinst.c:
> {
> if (procnameW)
> {
> - procname = strdupWtoA(procnameW + 1);
> + procname = UnicodeToMultiByte(procnameW + 1, CP_ACP);
> coinst_proc = (void *)GetProcAddress(module, procname);
> - heap_free(procname);
> + MyFree(procname);
It's hard for me to feel like this is an improvement, when we are now adding an extra parameter to every call, and also using some undocumented Windows functions that, to the reader, might have some obscure different semantics.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1746#note_28895
The main advantage is that this way we're getting valid DXBC checksums for DXBC blobs generated by d3dcompiler. See also https://bugs.winehq.org/show_bug.cgi?id=54464.
--
v2: d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_shader_reflection_init().
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_strip_shader().
d3dcompiler: Use vkd3d_shader_parse_dxbc() in d3dcompiler_get_blob_part().
d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_strip_shader().
d3dcompiler: Use vkd3d_shader_serialize_dxbc() in d3dcompiler_get_blob_part().
d3dcompiler: Store DXBC sections as vkd3d_shader_dxbc_section_desc structures.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2577