Alexandre Julliard pushed to branch master at wine / wine
Commits: 82a8e504 by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Sink module dependency registration towards the end of the function in find_forwarded_export().
- - - - - 6cf446ea by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Don't re-add a module dependency if it already exists.
Today, calling add_module_dependency() multiple times with the same arguments results in duplicate edges.
Duplicate edges are harmless, but bloats memory usage. The number of duplicate edges does not affect the dependency graph; the graph is determined by the set of unique edges.
Consciously avoid duplicates by checking for them in add_module_dependency_after(). This allows us to generate a unique dependency edge for all imports of export forwarders that belong to the same DLL.
- - - - - 41013b04 by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Register module dependency for export forwarders regardless of whether the dependency is already loaded.
Prepare for generalization to imports from DLLs.
Calling add_module_dependency() multiple times for the same dependency edge no longer bloats memory usage.
- - - - - a11721fa by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Properly track refcount on static imports of export forwarders.
Today this is only done for the the main EXE. Generalize this to DLLs as well.
- - - - - f7046002 by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Eagerly call process_attach() on dynamic imports of export forwarders.
- - - - - e608f6e0 by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Explicitly ignore dynamic (GetProcAddress) importers as relay/snoop user module.
- - - - - 698bee6c by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Properly track refcount on dynamic imports of export forwarders.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52094
- - - - - fa9f9123 by Jinoh Kang at 2025-02-22T20:51:40+01:00 ntdll: Remove superflous NULL check for importer.
- - - - -
2 changed files:
- dlls/kernel32/tests/loader.c - dlls/ntdll/loader.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/e1ee0d9c8e5c7ea4f453218bca8f5e...