[PATCH v2 2/2] ntdll: Don't use find_basename_module for sxs dlls
Fabian Maurer
dark.shadow4 at web.de
Fri May 31 10:52:02 CDT 2019
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/kernel32/tests/sxs.c | 4 ----
dlls/ntdll/loader.c | 9 ++++++---
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/kernel32/tests/sxs.c b/dlls/kernel32/tests/sxs.c
index 629e3c4991..f185277a64 100644
--- a/dlls/kernel32/tests/sxs.c
+++ b/dlls/kernel32/tests/sxs.c
@@ -154,12 +154,10 @@ static void test_two_dlls_at_same_time(void)
if (!fill_sxs_info(&dll_2, "2", "sxs_dll_2.dll", "sxs_exe_2.manifest", "sxs_dll_2.manifest"))
goto cleanup;
- todo_wine
ok(dll_1.module != dll_2.module, "Libraries are the same\n");
ret = dll_1.test_func();
ok(ret == 1, "Got %d\n", ret);
ret = dll_2.test_func();
- todo_wine
ok(ret == 2, "Got %d\n", ret);
cleanup:
@@ -194,10 +192,8 @@ static void test_one_sxs_and_one_local_1(void)
if (!fill_sxs_info(&dll, "1", "sxs_dll_1.dll", "sxs_exe_1.manifest", "sxs_dll_1.manifest"))
goto cleanup;
- todo_wine
ok(dll.module != module, "Libraries are the same\n");
ret = dll.test_func();
- todo_wine
ok(ret == 1, "Got %d\n", ret);
ret = test_func();
ok(ret == 2, "Got %d\n", ret);
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 166066783f..b8dc2b8bcc 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2680,10 +2680,13 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname,
if (!contains_path( libname ))
{
WCHAR *fullname = NULL;
+ NTSTATUS status_actctx = find_actctx_dll( libname, &fullname );
+ if (status_actctx != STATUS_SUCCESS)
+ {
+ if ((*pwm = find_basename_module( libname )) != NULL) goto done;
+ }
+ status = status_actctx;
- if ((*pwm = find_basename_module( libname )) != NULL) goto done;
-
- status = find_actctx_dll( libname, &fullname );
if (status == STATUS_SUCCESS)
{
TRACE ("found %s for %s\n", debugstr_w(fullname), debugstr_w(libname) );
--
2.21.0
More information about the wine-devel
mailing list