From 61d9d2891e14ee1fa87c28e2a0ca5b866d8d110c Mon Sep 17 00:00:00 2001 From: Asnivor Date: Sat, 26 Jan 2019 15:53:05 +0000 Subject: [PATCH] DynamicLibraryImportResolver (linux): better search paths --- .../BizInvoke/DynamicLibraryImportResolver.cs | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs b/BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs index 4c16a3d9b1..906d1b5a67 100644 --- a/BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs +++ b/BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs @@ -17,10 +17,14 @@ namespace BizHawk.Common.BizInvoke if (_p == IntPtr.Zero) throw new InvalidOperationException("null pointer returned by LoadPlatformSpecific"); } - private string[] SearchPaths = new string[] + private string[] RelativeSearchPaths = new string[] { "/", - "/dll/", + "/dll/" + }; + + private string[] AbsoluteSearchPaths = new string[] + { "/usr/lib/", "/usr/lib/bizhawk/" }; @@ -34,13 +38,23 @@ namespace BizHawk.Common.BizInvoke string currDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).Replace("file:", ""); string dll = dllName; - foreach (var p in SearchPaths) + foreach (var p in RelativeSearchPaths) { dll = currDir + p + dllName; if (System.IO.File.Exists(dll)) { dllName = dll; - break; + return; + } + } + + foreach (var p in AbsoluteSearchPaths) + { + dll = p + dllName; + if (System.IO.File.Exists(dll)) + { + dllName = dll; + return; } } }