Apache OpenOffice (AOO) Bugzilla – Issue 40944
crash on closing document or copying drawing
Last modified: 2005-02-02 14:45:18 UTC
open attached bugdoc. close it - crash. also try copying all objects and pasting them in a new writer document - again crash (might be related and might be not, so i'll leave them both in this issue unless it's confirmed that it's a separate issue).
Created attachment 21664 [details] testcase
Created attachment 21665 [details] trace
Reproducible, even under windows with current internal version.
Reassigned to Christian.
Armin, think this is the importent part of the stack > dl680mi.dll!SdrCircObj::ImpSetAttrToCircInfo() Line 1367 + 0x12 C++ dl680mi.dll!SdrCircObj::Notify(SfxBroadcaster & rBC={...}, const SfxHint & rHint={...}) Line 1360 C++ dl680mi.dll!sdr::properties::AttributeProperties::Notify(SfxBroadcaster & rBC={...}, const SfxHint & rHint={...}) Line 799 C++ dl680mi.dll!sdr::properties::TextProperties::Notify(SfxBroadcaster & rBC={...}, const SfxHint & rHint={...}) Line 592 C++ svl680mi.dll!0136f442() sd680mi.dll!SdStyleSheet::Notify(SfxBroadcaster & rBC={...}, const SfxHint & rHint={...}) Line 554 C++ svl680mi.dll!0137958d() svl680mi.dll!0136f21a() svt680mi.dll!01542d10() sd680mi.dll!SdStyleSheet::~SdStyleSheet() Line 166 + 0xf C++ sd680mi.dll!SdStyleSheet::`scalar deleting destructor'() + 0xf C++ svt680mi.dll!0154287d() svt680mi.dll!0154392e() sd680mi.dll!SdStyleSheetPool::~SdStyleSheetPool() Line 183 + 0x8 C++ sd680mi.dll!SdStyleSheetPool::`scalar deleting destructor'() + 0xf C++ dl680mi.dll!SdrModel::~SdrModel() Line 568 + 0x28 C++
AW: The SdrCircObj making problems is one of the temporary created ones for a CustomShape visualisation. It seems there is not all correct with StyleSheet handling at that objects, probably because they have no model (again the old trap :-( ). The StyleSheet itself is destroyed, then the temporary visualisation object tries to read it. Seems as if tempVisObjs may not survive StyleSheet changes. I will need to investigate more.
AW: The two crashes are the same, so much to the good news. Problem occurrs since the CustomShapes use a XShape to remember their display graphic. That XShape, in it's implementation, remembers the SvxShapes used for displaying. The XShape is released when not needed, but does not delete the SdrShapes. So, up to now, the display shapes were never deleted, hanginmg in memory and (more bad) being listeners at the styles. AW: Added deletion of the SdrShapes when disposing display geometry. Also changed SvxShape::Init() to do the type corrections when no model is set at the SdrObject. AW: Tested, checked in. Task added to CWS aw025.
AW->WG: Please verify. Test is just load bugdoc and close.
.
Fixed.
Verified in CWS.
Tested in master. Closed.