Apache OpenOffice (AOO) Bugzilla – Issue 38341
crash on switching the view
Last modified: 2005-01-03 05:15:58 UTC
P1, to get into m65. only seen on solaris so far, in linux it doesn't crash, not tested on win32. open impress, and switch the view either via tabs, or via menu view->Outline/SlideSorter/.. -> crash
This is probably a duplicate of issue 37867 but I have to look at the Solaris version first to be sure.
Accepted.
*** Issue 37867 has been marked as a duplicate of this issue. ***
One problem of this bug is covered by issue 32314: ViewShell::Init() calls UpdateController() in addition to the calls from the PaneManager. This call has been removed. The other, more severe, problem is that the controller is disposed by the dying ViewShell. When the new controller is passed to the frame the old controller is accessed for sending notifications about its end of life. The ViewShell must not do this because it does not own the controller. The frame does. The fix will be to set the controller in some semi-disposed state when its view shell is destroyed where it still can answer some calls (like the supportsService() method) but does not access the view shell anymore.
*** Issue 32314 has been marked as a duplicate of this issue. ***
Added a DetachFromViewShell() method to DrawController and changed references to view shell and view into pointers so that they can be set to NULL in the new method. The DetachFromViewShell() method is called from the destructor of ViewShell (instead of calling dispose()). Access to both ViewShell and View in DrawController, SdUnoDrawView, and SdUnoOutlineView has to guarded against NULL pointers.
Affected files are (in sd/source/ui): inc/DrawController.hxx inc/SdUnoDrawView.hxx inc/SdUnoOutlineView.hxx unoidl/DrawController.cxx unoidl/SdUnoDrawView.cxx unoidl/SdUnoOutlineView.cxx view/viewshel.cxx
Reopening...
...reassigning...
...resolving.
.
*** Issue 39021 has been marked as a duplicate of this issue. ***
*** Issue 39751 has been marked as a duplicate of this issue. ***