eclipse/eclipse-swtbug291128.patch

48 lines
2.9 KiB
Diff

diff -uNr build.xml build.xml
--- build.xml 2009-11-05 06:15:17.000000000 -0500
+++ build.xml 2009-12-22 16:47:19.000000000 -0500
@@ -247,6 +247,7 @@
<patch patchfile="${basedir}/patches/donotstorebuildlogsinfiles.patch" dir="${buildDirectory}" strip="3" />
<patch patchfile="${basedir}/patches/donotsetjavahomeandoptimizeliblocalfile.patch" dir="${buildDirectory}" strip="3" />
<patch patchfile="${basedir}/patches/eclipse-pde.build-add-package-build.patch" dir="${buildDirectory}/plugins/org.eclipse.pde.build" strip="0" />
+ <patch patchfile="${basedir}/patches/swtbug291128.patch" dir="${buildDirectory}/plugins/org.eclipse.swt/Eclipse SWT Accessibility" strip="1" />
<patch patchfile="${basedir}/patches/gnomeproxy-makefile.patch" dir="${buildDirectory}" strip="1" />
<replace file="${buildDirectory}/plugins/org.eclipse.pde.build/templates/package-build/build.properties" token="/usr/share/eclipse" value="/usr/${libDir}/eclipse" />
<chmod dir="${buildDirectory}/plugins/org.eclipse.pde.build/templates/package-build" includes="*.sh" perm="a+x" />
diff -uNr patches/swtbug291128.patch patches/swtbug291128.patch
--- patches/swtbug291128.patch 1969-12-31 19:00:00.000000000 -0500
+++ patches/swtbug291128.patch 2009-12-22 16:46:54.000000000 -0500
@@ -0,0 +1,32 @@
+### Eclipse Workspace Patch 1.0
+#P org.eclipse.swt
+Index: Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java,v
+retrieving revision 1.46
+diff -u -r1.46 AccessibleObject.java
+--- Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java 29 May 2009 21:30:30 -0000 1.46
++++ Eclipse SWT Accessibility/gtk/org/eclipse/swt/accessibility/AccessibleObject.java 22 Dec 2009 17:05:15 -0000
+@@ -1176,7 +1176,12 @@
+ }
+
+ 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 @@
+ 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 ();