Re: [PATCH 0/2] MR7: Draft: ntdll: Properly track refcount with forwarded exports.
Rémi Bernon (@rbernon) commented about dlls/ntdll/loader.c:
if (!end) return NULL; if (build_import_name( mod_name, forward, end - forward )) return NULL;
- if (!(wm = find_basename_module( mod_name ))) + imp = get_modref( module ); + TRACE( "delay loading %s for '%s'\n", debugstr_w(mod_name), forward ); + if (load_dll( load_path, mod_name, 0, &wm, imp->system ) == STATUS_SUCCESS && + !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS)) { - WINE_MODREF *imp = get_modref( module ); - TRACE( "delay loading %s for '%s'\n", debugstr_w(mod_name), forward ); - if (load_dll( load_path, mod_name, 0, &wm, imp->system ) == STATUS_SUCCESS && - !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS)) + if ((imports_fixup_done || !current_modref) && + process_attach( wm->ldr.DdagNode, NULL ) != STATUS_SUCCESS)
Can `current_modref` really still be NULL now if `LdrGetProcedureAddress` also sets it? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7#note_11121
participants (1)
-
Rémi Bernon