The first patch is much larger than I'd like, but the combination of global variables and dependencies between functions made attempts to split it ugly and it didn't feel like an improvement.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/258
Another thing that I noticed, that is potentially relevant to how relationship between d3d11 and dxgi objects is tracked, is IDXGIResource1::CreateSubresourceSurface. I didn't do any testing with it, but it implies you can create multiple dxgi objects for the same d3d11/wined3d resource, at least as many as subresource count, but potentially any number of them. Right now afaict lifetime is tracked in d3d11 object, and dxgi one do not take a reference to them. So i'm not sure yet, how this is supposed to coexist.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/212#note_2188
GCC12.* emits tons of warnings when compiling win32'u sysparam bits
These warnings stem from:
- a union of different structures
- allocating one instance of these structure and casting its address to a pointer to
the union.
This is UB as the whole union should be allocated in order to be a valid
object.
I tried to keep the original goals:
- don't overallocate individual structures
- have an OO design (and avoid casting back & forth arguments in methods)
and implemented this fix by transforming (as argument to most of the methods)
- a pointer to an union of structs
into
- an union (passed by value) of pointers to structs
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/172
This serie tackles several issues encountered while loading PDB files through dbghelp.
It happens that PDB allows to have several type records for user defined types (struct / enums)
with the same name.
This seems to be generated by a) compiler (when modifying a structure definition between several
compilation phases), b) the incremental linker (likely an optimisation of previous case, but
not 100% certain when it's triggered).
Wine's dbghelp ended up not picking the right record, hence generating errneous outputs.
This series:
- cleans up some PDB related code
- update winedump to display the PDB hash table internals
- fixes dbghelp to preserve in Wine's dbghelp hash table the partial order between type
records of same name.
v2:
- rebased
- removed a bunch of stray comments
--
v4: dlls/dbghelp{pdb}: use remap table from PDB hash stream
dlls/dbghelp{pdb}: ensure dbghelp's list order in hash table matches PDB's
dlls/dbghelp{pdb}: clearly separate the type loading into two passes
include/wine/mscvpdb.h: redefine property with bitfields
dlls/dbghelp{pdb}: rely on first/last index from type header
tools/winedump{pdb}: explore a bit more TPI hash elements
https://gitlab.winehq.org/wine/wine/-/merge_requests/73