Bug 568251 - [GTK] Memory corruption in Display.initializeSystemSettings

Using java's boolean[] to interface to 'gboolean' is always wrong,
because 'jboolean' is 1 byte, and 'gboolean' is 4 bytes.

Change-Id: I44c590bb98a8c54f9d5ece9c8938e208cabdd04a
Signed-off-by: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
index 6c225fd..2f968a1 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
@@ -16162,23 +16162,6 @@
 }
 #endif
 
-#ifndef NO_g_1object_1get__J_3B_3ZJ
-JNIEXPORT void JNICALL OS_NATIVE(g_1object_1get__J_3B_3ZJ)
-	(JNIEnv *env, jclass that, jlong arg0, jbyteArray arg1, jbooleanArray arg2, jlong arg3)
-{
-	jbyte *lparg1=NULL;
-	jboolean *lparg2=NULL;
-	OS_NATIVE_ENTER(env, that, g_1object_1get__J_3B_3ZJ_FUNC);
-	if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
-	if (arg2) if ((lparg2 = (*env)->GetBooleanArrayElements(env, arg2, NULL)) == NULL) goto fail;
-	g_object_get((GObject *)arg0, (const gchar *)lparg1, lparg2, (const gchar *)NULL);
-fail:
-	if (arg2 && lparg2) (*env)->ReleaseBooleanArrayElements(env, arg2, lparg2, 0);
-	if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, JNI_ABORT);
-	OS_NATIVE_EXIT(env, that, g_1object_1get__J_3B_3ZJ_FUNC);
-}
-#endif
-
 #ifndef NO_g_1object_1get_1qdata
 JNIEXPORT jlong JNICALL OS_NATIVE(g_1object_1get_1qdata)
 	(JNIEnv *env, jclass that, jlong arg0, jint arg1)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
index f9ac392..df1f03e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
@@ -1298,7 +1298,6 @@
 	"g_1menu_1new",
 	"g_1object_1get__J_3B_3IJ",
 	"g_1object_1get__J_3B_3JJ",
-	"g_1object_1get__J_3B_3ZJ",
 	"g_1object_1get_1qdata",
 	"g_1object_1new",
 	"g_1object_1notify",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
index f35f27e..8d221e6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
@@ -1272,7 +1272,6 @@
 	g_1menu_1new_FUNC,
 	g_1object_1get__J_3B_3IJ_FUNC,
 	g_1object_1get__J_3B_3JJ_FUNC,
-	g_1object_1get__J_3B_3ZJ_FUNC,
 	g_1object_1get_1qdata_FUNC,
 	g_1object_1new_FUNC,
 	g_1object_1notify_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index 65d56e0..2da3581 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -1089,12 +1089,6 @@
  * @param first_property_name cast=(const gchar *),flags=no_out
  * @param terminator cast=(const gchar *),flags=sentinel
  */
-public static final native void g_object_get(long object, byte[] first_property_name, boolean[] value, long terminator);
-/**
- * @param object cast=(GObject *)
- * @param first_property_name cast=(const gchar *),flags=no_out
- * @param terminator cast=(const gchar *),flags=sentinel
- */
 public static final native void g_object_get(long object, byte[] first_property_name, int[] value, long terminator);
 /**
  * @param object cast=(GObject *)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
index 6452bff..f320314 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
@@ -3761,11 +3761,11 @@
 		OS.g_signal_connect(GTK.gtk_settings_get_default (), OS.notify_theme_change, signalProc, STYLE_UPDATED);
 	}
 
-	boolean[] flag = new boolean[1];
+	int[] flag = new int[1];
 	long settings = GTK.gtk_settings_get_default();
 	OS.g_object_get(settings, GTK.gtk_entry_select_on_focus, flag, 0);
 
-	entrySelectOnFocus = flag[0];
+	entrySelectOnFocus = (flag[0] != 0);
 }
 
 void initializeWidgetTable () {