diff options
author | Silenio Quarti <silenio> | 2009-12-02 23:45:25 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2009-12-02 23:45:25 +0000 |
commit | 43247e664c79d2fc35e6151bdc49aefe9e6dfb7a (patch) | |
tree | fcd520ed14360a95a7b9dae28ea3e6b86b192804 /bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java | |
parent | 0b26303ff77a0b86a8a1c108c75167c2829b0c40 (diff) | |
download | eclipse.platform.swt-43247e664c79d2fc35e6151bdc49aefe9e6dfb7a.tar.gz eclipse.platform.swt-43247e664c79d2fc35e6151bdc49aefe9e6dfb7a.tar.xz eclipse.platform.swt-43247e664c79d2fc35e6151bdc49aefe9e6dfb7a.zip |
Bug 291128 - [Widgets] eclipse >= 3.5 crash when closing a first level modal window (Install, Run Configurations)
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java index 00b05d5394..1293d93bff 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java @@ -1176,7 +1176,12 @@ class AccessibleObject { } static AccessibleObject getAccessibleObject (int /*long*/ atkObject) { - return (AccessibleObject)AccessibleObjects.get (new LONG (atkObject)); + AccessibleObject object = (AccessibleObject)AccessibleObjects.get (new LONG (atkObject)); + if (object == null) return null; + if (object.accessible == null) return null; + Control control = object.accessible.control; + if (control == null || control.isDisposed()) return null; + return object; } AccessibleObject getChildByHandle (int /*long*/ handle) { @@ -1252,7 +1257,7 @@ class AccessibleObject { GObjectClass objectClassStruct = new GObjectClass (); ATK.memmove (objectClassStruct, gObjectClass); ATK.call (objectClassStruct.finalize, atkObject); - AccessibleObject object = getAccessibleObject (atkObject); + AccessibleObject object = (AccessibleObject)AccessibleObjects.get (new LONG (atkObject)); if (object != null) { AccessibleObjects.remove (new LONG (atkObject)); object.release (); |