Apache OpenOffice (AOO) Bugzilla – Issue 57206
Office crashes opening 5.2 impress document with embedded draw.
Last modified: 2006-02-16 11:36:05 UTC
Please try to open the attached document, the office crashes in SdrObject::IsMasterPageBackgroundObject() method.
Created attachment 31113 [details] The document that let the office crash.
Created attachment 31114 [details] the crash with debug info that I have retrieved using my cws build
There is an assertion just before the crash: "MasterPageDescriptor::GetBackgroundObject(): MasterPageBackgroundObject missing (!)" The crash happens because the "pRetval" pointer retrived in the next line is NULL.
AW: Indeed, this happens. Reason is (again...) MasterPageBackgroundObject. It's missing on a masterpage. Asked CL, this should not happen. Investigating how that may happen. AW: For test: added code to ignore count of zero objects in MasterPageDescriptor::GetBackgroundObject, now doc is loaded correctly. AW: For test: Added code to see who is removing object zero from MasterPage. Investigating...
AW: Okay, here is the interesting stack: > svx680mi.dll!sdr::MasterPageDescriptor::GetBackgroundObject() Line 164 C++ svx680mi.dll!sdr::contact::ViewContactOfMasterPageDescriptor::PaintObject(sdr::contact::DisplayInfo & rDisplayInfo={...}, Rectangle & rPaintRectangle={...}, const sdr::contact::ViewObjectContact & rAssociatedVOC={...}) Line 590 + 0x11 C++ svx680mi.dll!sdr::contact::ViewObjectContact::PaintObject(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 288 + 0x26 C++ sd680mi.dll!sd::ViewRedirector::PaintObject(sdr::contact::ViewObjectContact & rOriginal={...}, sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 455 C++ svx680mi.dll!sdr::contact::ViewObjectContact::PaintObjectHierarchy(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 369 C++ svx680mi.dll!sdr::contact::ViewObjectContact::PaintDrawHierarchy(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 327 C++ svx680mi.dll!sdr::contact::ViewObjectContact::PaintObjectHierarchy(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 379 C++ svx680mi.dll!sdr::contact::ObjectContactOfPageView::DoProcessDisplay(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 547 C++ svx680mi.dll!sdr::contact::ObjectContactOfPageView::ProcessDisplay(sdr::contact::DisplayInfo & rDisplayInfo={...}) Line 426 C++ svx680mi.dll!SdrPageViewWindow::Redraw(const Region & rReg={...}, unsigned short nPaintMode=0, const unsigned char * pId=0x00000000, sdr::contact::ViewObjectContactRedirector * pRedirector=0x00eadccc) Line 836 C++ svx680mi.dll!SdrPageView::CompleteRedraw(OutputDevice * pGivenTarget=0x00eadf4c, const Region & rReg={...}, unsigned short nPaintMode=0, sdr::contact::ViewObjectContactRedirector * pRedirector=0x00eadccc) Line 1380 C++ svx680mi.dll!SdrPaintView::CompleteRedraw(OutputDevice * pOut=0x00eadf4c, const Region & rReg={...}, unsigned short nPaintMode=0, sdr::contact::ViewObjectContactRedirector * pRedirector=0x00eadccc) Line 1147 C++ sd680mi.dll!sd::View::CompleteRedraw(OutputDevice * pOutDev=0x00eadf4c, const Region & rReg={...}, sdr::contact::ViewObjectContactRedirector * pRedirector=0x00000000) Line 483 C++ sd680mi.dll!sd::DrawView::CompleteRedraw(OutputDevice * pOutDev=0x00eadf4c, const Region & rReg={...}, sdr::contact::ViewObjectContactRedirector * pRedirector=0x00000000) Line 670 C++ sd680mi.dll!sd::ClientView::CompleteRedraw(OutputDevice * pOutDev=0x00eadf4c, const Region & rReg={...}) Line 119 C++ sd680mi.dll!sd::DrawDocShell::Draw(OutputDevice * pOut=0x00eadf4c, const JobSetup & rSetup={...}, unsigned short nAspect=1) Line 165 C++ sfx680mi.dll!03b27522() sfx680mi.dll!03b276f0() sfx680mi.dll!03b1d910() sfx680mi.dll!03a96b4a() embobj.dll!65f86c1a() svt680mi.dll!svt::EmbeddedObjectRef::GetGraphicReplacementStream(__int64 nViewAspect=1, const com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> & xObj={...}, rtl::OUString * pMediaType=0x091c49a8) Line 662 + 0x26 C++ svt680mi.dll!svt::EmbeddedObjectRef::GetGraphicStream(unsigned char bUpdate='') Line 474 + 0x2f C++ svt680mi.dll!svt::EmbeddedObjectRef::GetReplacement(unsigned char bUpdate='') Line 417 + 0xc C++ svt680mi.dll!svt::EmbedEventListener_Impl::modified(const com::sun::star::lang::EventObject & aEvent={...}) Line 184 C++ sfx680mi.dll!03a9382b() sfx680mi.dll!03a9a943() sd680mi.dll!SdXImpressDocument::Notify(SfxBroadcaster & rBC={...}, const SfxHint & rHint={...}) Line 546 C++ svl680mi.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint={...}) Line 80 C++ sd680mi.dll!sd::DrawDocShell::SetModified(unsigned char bSet='') Line 637 + 0x28 C++ sd680mi.dll!SdDrawDocument::SetChanged(unsigned char bFlag='') Line 690 C++ svx680mi.dll!SdrPage::SetChanged() Line 1404 C++ svx680mi.dll!SdrPage::SetSize(const Size & aSiz={...}) Line 1270 C++ sd680mi.dll!SdPage::SetSize(const Size & aSize={...}) Line 2157 C++ sd680mi.dll!SdDrawDocument::CreateFirstPages() Line 899 C++ sd680mi.dll!SdXImpressDocument::initializeDocument() Line 2165 C++ sd680mi.dll!SdXImpressDocument::getMasterPages() Line 861 C++ xo680mi.dll!605bc3ab() xo680mi.dll!605dcbf2() AW: As can be seen, the doc init SdDrawDocument::CreateFirstPages() triggers a broadcast which, because it's an OLE, triggers a repaint of the model which is currently loaded and not yet complete. AW->MAV: CL told me this is double to #i55625#, fixed in m136. He also told me that he and you agreed on a follow-up bug for not repainting OLE contents during load time. This bug is one more argument for that follow-up bug. AW: Quickly checing m137 if the problem is fixed there...Okay, it is.
Indeed, it is a duplicate. *** This issue has been marked as a duplicate of 55625 ***
Closing.
.