Issue 38341 - crash on switching the view
Summary: crash on switching the view
Status: CLOSED FIXED
Alias: None
Product: Impress
Classification: Application
Component: ui (show other issues)
Version: OOo 1.0.0
Hardware: All Solaris
: P1 (highest) Trivial (vote)
Target Milestone: OOo 2.0
Assignee: b.osi.ooo
QA Contact: issues@graphics
URL:
Keywords:
: 32314 37867 39021 39751 (view as issue list)
Depends on:
Blocks:
 
Reported: 2004-12-02 17:10 UTC by b.osi.ooo
Modified: 2005-01-03 05:15 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description b.osi.ooo 2004-12-02 17:10:18 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
Comment 1 groucho266 2004-12-03 09:27:17 UTC
This is probably a duplicate of issue 37867 but I have to look at the Solaris
version first to be sure.
Comment 2 groucho266 2004-12-03 09:28:46 UTC
Accepted.
Comment 3 groucho266 2004-12-03 14:44:46 UTC
*** Issue 37867 has been marked as a duplicate of this issue. ***
Comment 4 groucho266 2004-12-03 14:52:53 UTC
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.
Comment 5 wolframgarten 2004-12-03 15:05:08 UTC
*** Issue 37867 has been marked as a duplicate of this issue. ***
Comment 6 groucho266 2004-12-06 09:41:52 UTC
*** Issue 32314 has been marked as a duplicate of this issue. ***
Comment 7 groucho266 2004-12-06 10:37:12 UTC
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.
Comment 8 groucho266 2004-12-06 10:51:45 UTC
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
Comment 9 groucho266 2004-12-08 09:52:24 UTC
Reopening...
Comment 10 groucho266 2004-12-08 09:52:58 UTC
...reassigning...
Comment 11 groucho266 2004-12-08 09:53:18 UTC
...resolving.
Comment 12 b.osi.ooo 2004-12-08 12:53:11 UTC
.
Comment 13 b.osi.ooo 2004-12-13 13:05:59 UTC
.
Comment 14 wolframgarten 2004-12-15 09:44:10 UTC
*** Issue 39021 has been marked as a duplicate of this issue. ***
Comment 15 nagashree 2005-01-03 05:15:58 UTC
*** Issue 39751 has been marked as a duplicate of this issue. ***