From f760abeb81154ad2976c9879d50500a058150bf1 Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Sat, 13 Sep 2014 13:39:22 +0300 Subject: [PATCH] Backported LWJGL 3's handling of System.loadLibrary errors. Resolves #87. --- src/java/org/lwjgl/Sys.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/java/org/lwjgl/Sys.java b/src/java/org/lwjgl/Sys.java index 16543ecd..ac9e609c 100644 --- a/src/java/org/lwjgl/Sys.java +++ b/src/java/org/lwjgl/Sys.java @@ -80,13 +80,15 @@ public final class Sys { private static void loadLibrary(final String lib_name) { // actively try to load 64bit libs on 64bit architectures first String osArch = System.getProperty("os.arch"); - boolean is64bit = "amd64".equals(osArch) || "x86_64".equals(osArch); - if(is64bit) { + boolean try64First = LWJGLUtil.getPlatform() != LWJGLUtil.PLATFORM_MACOSX && ("amd64".equals(osArch) || "x86_64".equals(osArch)); + + Error err = null; + if ( try64First ) { try { doLoadLibrary(lib_name + POSTFIX64BIT); return; } catch (UnsatisfiedLinkError e) { - LWJGLUtil.log("Failed to load 64 bit library: " + e.getMessage()); + err = e; } } @@ -94,6 +96,9 @@ public final class Sys { try { doLoadLibrary(lib_name); } catch (UnsatisfiedLinkError e) { + if ( try64First ) + throw err; + if (implementation.has64Bit()) { try { doLoadLibrary(lib_name + POSTFIX64BIT); @@ -102,6 +107,7 @@ public final class Sys { LWJGLUtil.log("Failed to load 64 bit library: " + e2.getMessage()); } } + // Throw original error throw e; }