Cleaned up how errors are thrown for GTK libraries.
This commit is contained in:
parent
ab8e7e5a79
commit
e191faa3b8
@ -85,9 +85,11 @@ class GtkLoader {
|
|||||||
String gtk2LibName = "gtk-x11-2.0";
|
String gtk2LibName = "gtk-x11-2.0";
|
||||||
String gtk3LibName = "libgtk-3.so.0";
|
String gtk3LibName = "libgtk-3.so.0";
|
||||||
|
|
||||||
|
NativeLibrary library = null;
|
||||||
|
|
||||||
if (!_isLoaded && (forceGtk2 || !preferGtk3)) {
|
if (!_isLoaded && (forceGtk2 || !preferGtk3)) {
|
||||||
try {
|
try {
|
||||||
NativeLibrary library = JnaHelper.register(gtk2LibName, Gtk2.class);
|
library = JnaHelper.register(gtk2LibName, Gtk2.class);
|
||||||
|
|
||||||
_isGtk2 = true;
|
_isGtk2 = true;
|
||||||
|
|
||||||
@ -106,6 +108,10 @@ class GtkLoader {
|
|||||||
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk2LibName);
|
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk2LibName);
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
if (library != null) {
|
||||||
|
library.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
if (GtkEventDispatch.DEBUG) {
|
if (GtkEventDispatch.DEBUG) {
|
||||||
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library", e);
|
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library", e);
|
||||||
}
|
}
|
||||||
@ -123,13 +129,14 @@ class GtkLoader {
|
|||||||
if (!_isLoaded) {
|
if (!_isLoaded) {
|
||||||
try {
|
try {
|
||||||
// have to get the version information FIRST, because there are some really old GTK3 libraries out there.
|
// have to get the version information FIRST, because there are some really old GTK3 libraries out there.
|
||||||
NativeLibrary library = JnaHelper.register(gtk3LibName, Gtk3VersionInfo.class);
|
library = JnaHelper.register(gtk3LibName, Gtk3VersionInfo.class);
|
||||||
|
|
||||||
Gtk3VersionInfo version = new Gtk3VersionInfo();
|
Gtk3VersionInfo version = new Gtk3VersionInfo();
|
||||||
major = version.gtk_get_major_version();
|
major = version.gtk_get_major_version();
|
||||||
minor = version.gtk_get_minor_version();
|
minor = version.gtk_get_minor_version();
|
||||||
micro = version.gtk_get_micro_version();
|
micro = version.gtk_get_micro_version();
|
||||||
library.dispose();
|
library.dispose();
|
||||||
|
library = null;
|
||||||
|
|
||||||
library = JnaHelper.register(gtk3LibName, Gtk3.class);
|
library = JnaHelper.register(gtk3LibName, Gtk3.class);
|
||||||
if (major >= 3 && minor >= 10) {
|
if (major >= 3 && minor >= 10) {
|
||||||
@ -149,6 +156,10 @@ class GtkLoader {
|
|||||||
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk3LibName);
|
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk3LibName);
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
if (library != null) {
|
||||||
|
library.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
if (GtkEventDispatch.DEBUG) {
|
if (GtkEventDispatch.DEBUG) {
|
||||||
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library.", e);
|
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library.", e);
|
||||||
}
|
}
|
||||||
@ -158,7 +169,7 @@ class GtkLoader {
|
|||||||
// now version 2
|
// now version 2
|
||||||
if (!_isLoaded) {
|
if (!_isLoaded) {
|
||||||
try {
|
try {
|
||||||
NativeLibrary library = JnaHelper.register(gtk2LibName, Gtk2.class);
|
library = JnaHelper.register(gtk2LibName, Gtk2.class);
|
||||||
|
|
||||||
_isGtk2 = true;
|
_isGtk2 = true;
|
||||||
major = library.getGlobalVariableAddress("gtk_major_version").getInt(0);
|
major = library.getGlobalVariableAddress("gtk_major_version").getInt(0);
|
||||||
@ -176,6 +187,10 @@ class GtkLoader {
|
|||||||
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk2LibName);
|
LoggerFactory.getLogger(GtkLoader.class).debug("GTK: {}", gtk2LibName);
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
if (library != null) {
|
||||||
|
library.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
if (GtkEventDispatch.DEBUG) {
|
if (GtkEventDispatch.DEBUG) {
|
||||||
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library", e);
|
LoggerFactory.getLogger(GtkLoader.class).error("Error loading library", e);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user