Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 383816 Details for
Bug 521308
<dev-java/swt-4.3: Crashes and errors with newer Glib/GTK+ versions
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
fix combo widget dispose crash
0001-fix-combo-widget-dispose-crash.patch (text/plain), 2.40 KB, created by
Matthias Dahl
on 2014-08-27 15:08:39 UTC
(
hide
)
Description:
fix combo widget dispose crash
Filename:
MIME Type:
Creator:
Matthias Dahl
Created:
2014-08-27 15:08:39 UTC
Size:
2.40 KB
patch
obsolete
>Backport of commit 8a770faaa4942f4e1cde0428ab3348bcc4c88e3f from master to fix a >crash with newer Glib versions and disposing of Combo widgets. > >See >https://bugs.eclipse.org/bugs/show_bug.cgi?id=372560 > >--- a/src/org/eclipse/swt/widgets/Combo.java 2013-01-31 10:15:12.000000000 +0100 >+++ b/src/org/eclipse/swt/widgets/Combo.java 2014-08-27 15:38:00.135242071 +0200 >@@ -541,6 +541,7 @@ void findButtonHandle() { > long /*int*/ 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); >@@ -555,13 +556,14 @@ void findMenuHandle() { > if (display.allChildren != 0) { > long /*int*/ list = display.allChildren; > while (list != 0) { >- long /*int*/ widget = OS.g_list_data (list); >- if (OS.G_OBJECT_TYPE (widget) == OS.GTK_TYPE_MENU ()) { >- menuHandle = widget; >- break; >+ long /*int*/ 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; > } >@@ -1229,6 +1231,7 @@ long /*int*/ gtk_event_after (long /*int > 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); >@@ -1486,7 +1489,13 @@ void register () { > > void releaseHandle () { > super.releaseHandle (); >- buttonHandle = entryHandle = 0; >+ if (menuHandle != 0) { >+ OS.g_object_unref (menuHandle); >+ } >+ if (buttonHandle != 0) { >+ OS.g_object_unref (buttonHandle); >+ } >+ menuHandle = buttonHandle = entryHandle = 0; > } > > void releaseWidget () {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 521308
: 383816 |
383818