packages eclipse-3.6.2-glib-2.38.patch
      Pages: < 1 >  DOWNLOAD      
diff -Nru "eclipse-build-master.orig/build/eclipse-3.6.2-src/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java" "eclipse-build-master/build/eclipse-3.6.2-src/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java"
--- "eclipse-build-master.orig/build/eclipse-3.6.2-src/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java"	2010-07-28 14:23:18.000000000 +0000
+++ "eclipse-build-master/build/eclipse-3.6.2-src/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java"	2014-04-27 10:43:12.227570788 +0000
@@ -615,6 +615,7 @@
 			int /*long*/ widget = OS.g_list_data (list);
 			if (OS.GTK_IS_BUTTON (widget)) {
 				buttonHandle = widget;
+				OS.g_object_ref (buttonHandle);
 				break;
 			}
 			list = OS.g_list_next (list);
@@ -629,13 +630,14 @@
 	if (display.allChildren != 0) {
 	int /*long*/ list = display.allChildren;
 		while (list != 0) {
-		int /*long*/ widget = OS.g_list_data (list);
-		if (OS.G_OBJECT_TYPE (widget) == OS.GTK_TYPE_MENU ()) {
-			menuHandle = widget;
-			break;
+			int /*long*/ widget = OS.g_list_data (list);
+			if (OS.G_OBJECT_TYPE (widget) == OS.GTK_TYPE_MENU ()) {
+				menuHandle = widget;
+				OS.g_object_ref (menuHandle);
+				break;
+			}
+			list = OS.g_list_next (list);
 		}
-		list = OS.g_list_next (list);
-	}
 	OS.g_list_free (display.allChildren);
 	display.allChildren = 0;
 	}
@@ -1313,6 +1315,7 @@
 					if (grabHandle != 0) {
 						if (OS.G_OBJECT_TYPE (grabHandle) == OS.GTK_TYPE_MENU ()) {
 							menuHandle = grabHandle;
+							OS.g_object_ref (menuHandle);
 							OS.g_signal_connect_closure_by_id (menuHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, display.closures [BUTTON_RELEASE_EVENT], false);
 							OS.g_signal_connect_closure_by_id (menuHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, display.closures [BUTTON_RELEASE_EVENT_INVERSE], true);
 							OS.g_signal_connect_closure (menuHandle, OS.selection_done, display.closures [SELECTION_DONE], false);
@@ -1582,7 +1585,13 @@
 
 void releaseHandle () {
 	super.releaseHandle ();
-	buttonHandle = entryHandle = listHandle = 0;
+	if (menuHandle != 0) {
+		OS.g_object_unref (menuHandle);
+	}
+	if (buttonHandle != 0) {
+		OS.g_object_unref (buttonHandle);
+	}
+	menuHandle = buttonHandle = entryHandle = 0;
 }
 
 void releaseWidget () {