Mercurial > hg > release > icedtea7-forest-2.6 > jdk
changeset 8653:61d3e001dee6 icedtea-2.6.1
PR2521: Systems with a GLib without libgio segfault when obtaining proxy information
author | andrew |
---|---|
date | Tue, 21 Jul 2015 01:32:24 +0100 |
parents | c1787ebf3df9 |
children | 08d0296ae3dd |
files | src/solaris/native/common/deps/glib2/gio_fp.c src/solaris/native/common/deps/glib2/glib_fp.h src/solaris/native/sun/net/spi/DefaultProxySelector.c |
diffstat | 3 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/solaris/native/common/deps/glib2/gio_fp.c Mon Jul 20 00:11:26 2015 +0100 +++ b/src/solaris/native/common/deps/glib2/gio_fp.c Tue Jul 21 01:32:24 2015 +0100 @@ -55,6 +55,7 @@ if (gio_handle == NULL) { gio_handle = dlopen("libgio-2.0.so.0", RTLD_LAZY); if (gio_handle == NULL) { + NATDEBUG("Couldn't find libgio; returning false\n") return JNI_FALSE; } } @@ -124,7 +125,14 @@ jboolean gsettings_init() { - gio_init(); + jboolean gio_init_result; + + gio_init_result = gio_init(); + if (gio_init_result == JNI_FALSE) + { + NATDEBUG("gio_init failed; returning false\n") + return JNI_FALSE; + } if (settings_new != NULL && settings_get_boolean != NULL &&
--- a/src/solaris/native/common/deps/glib2/glib_fp.h Mon Jul 20 00:11:26 2015 +0100 +++ b/src/solaris/native/common/deps/glib2/glib_fp.h Tue Jul 21 01:32:24 2015 +0100 @@ -54,12 +54,11 @@ } GError; #endif -#ifndef g_type_init +#ifndef USE_SYSTEM_GIO +#ifndef USE_SYSTEM_GCONF #define g_type_init (*type_init) +#define g_free (*gfree) #endif - -#ifndef g_free -#define g_free (*gfree) #endif typedef void (*type_init_func)(void);
--- a/src/solaris/native/sun/net/spi/DefaultProxySelector.c Mon Jul 20 00:11:26 2015 +0100 +++ b/src/solaris/native/sun/net/spi/DefaultProxySelector.c Tue Jul 21 01:32:24 2015 +0100 @@ -231,6 +231,9 @@ } } else { if (gconf_client == NULL) { +#ifdef NATIVE_SUPPORT_DEBUG + printf("g_type_init=%p\n", g_type_init); +#endif g_type_init(); gconf_client = gconf_client_get_default(); }