diff options
author | Duong Nguyen <dnguyen> | 2008-09-23 18:17:16 +0000 |
---|---|---|
committer | Duong Nguyen <dnguyen> | 2008-09-23 18:17:16 +0000 |
commit | 6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93 (patch) | |
tree | c7cd1f8386a97da92758b920a66a17d35e225094 /bundles/org.eclipse.swt/Eclipse SWT OLE Win32 | |
parent | 4a3ea50742b341f871e030fc351a2ff86db6dd07 (diff) | |
download | eclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.tar.gz eclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.tar.xz eclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.zip |
Bug 248187 - Adobe Reader 9.0 browser crash NPE
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OLE Win32')
-rwxr-xr-x | bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java index f8648ec5be..b89458d525 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java +++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java @@ -846,18 +846,21 @@ private int OnDataChange(int /*long*/ pFormatetc, int /*long*/ pStgmed) { } private void onDispose(Event e) { inDispose = true; - if (state != STATE_NONE) - doVerb(OLE.OLEIVERB_DISCARDUNDOSTATE); - deactivateInPlaceClient(); - releaseObjectInterfaces(); // Note, must release object interfaces before releasing frame - deleteTempStorage(); - + // remove listeners removeListener(SWT.Dispose, listener); removeListener(SWT.FocusIn, listener); + removeListener(SWT.FocusOut, listener); removeListener(SWT.Paint, listener); removeListener(SWT.Traverse, listener); removeListener(SWT.KeyDown, listener); + + if (state != STATE_NONE) + doVerb(OLE.OLEIVERB_DISCARDUNDOSTATE); + deactivateInPlaceClient(); + releaseObjectInterfaces(); // Note, must release object interfaces before releasing frame + deleteTempStorage(); + frame.removeListener(SWT.Resize, listener); frame.removeListener(SWT.Move, listener); |