Apache OpenOffice (AOO) Bugzilla – Issue 102048
Crash when changing style for dimension line
Last modified: 2017-05-20 10:29:20 UTC
- New Draw document - Insert a dimension line - Open Styles & Formatting - Double click on "First line indent" -> crash Details: - I tracked the current P2s but needn't find any duplicate - Also reproducible in 3.0.1 (currently with 300m48) - Only tested on Vista - The crash seem only to happen with some styles: * First line indent, Heading and Title1 -> crash But: Title 2 and Object with arrow -> no crash - I sent a crash report with a meaningful summary :) Track for my e-mail address in the database... Background was: I tried to change the font style of a dimension line using the Stylist. The changes don't apply. Maybe related to the crash or not...
Reproducible. Reassigned.
@aw: Please have a look, I see a lot of primitive2d lines on the stack: > svxcoremi.dll!drawinglayer::primitive2d::createPolygonLinePrimitive(const basegfx::B2DPolygon & rUnitPolygon={...}, const basegfx::B2DHomMatrix & rObjectTransform={...}, const drawinglayer::attribute::SdrLineAttribute & rLine={...}, const drawinglayer::attribute::SdrLineStartEndAttribute * pStroke=0x00000000) Line 138 + 0x3 bytes C++ svxcoremi.dll!drawinglayer::primitive2d::SdrMeasurePrimitive2D::impCreatePart(const basegfx::B2DHomMatrix & rObjectMatrix={...}, const basegfx::B2DPoint & rStart={...}, const basegfx::B2DPoint & rEnd={...}, bool bLeftActive=true, bool bRightActive=true) Line 67 + 0x20 bytes C++ svxcoremi.dll!drawinglayer::primitive2d::SdrMeasurePrimitive2D::createLocalDecomposition(const drawinglayer::geometry::ViewInformation2D & aViewInformation={...}) Line 298 + 0x2b bytes C++ drawinglayermi.dll!drawinglayer::primitive2d::BasePrimitive2D::get2DDecomposition() + 0x3d bytes [Frames below may be incorrect and/or missing, no symbols loaded for drawinglayermi.dll] drawinglayermi.dll!drawinglayer::primitive2d::BasePrimitive2D::getB2DRange() + 0x18 bytes drawinglayermi.dll!drawinglayer::primitive2d::getB2DRangeFromPrimitive2DReference() + 0x54 bytes drawinglayermi.dll!drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence() + 0x4d bytes svxcoremi.dll!SdrObject::RecalcBoundRect() Line 996 + 0x11 bytes C++ svxcoremi.dll!SdrObject::GetCurrentBoundRect() Line 968 C++ svxcoremi.dll!SdrMarkList::TakeBoundRect(SdrPageView * pPV=0x105bbc68, Rectangle & rRect={...}) Line 846 + 0x18 bytes C++ svxcoremi.dll!SdrMarkView::SetMarkRects() Line 1235 C++ svxcoremi.dll!SdrMarkView::AdjustMarkHdl() Line 1968 C++ svxcoremi.dll!SdrMarkView::ModelHasChanged() Line 238 C++ svxcoremi.dll!SdrEditView::ModelHasChanged() Line 413 C++ svxcoremi.dll!SdrObjEditView::ModelHasChanged() Line 182 C++ sdmi.dll!sd::View::ModelHasChanged() Line 709 C++ sdmi.dll!sd::DrawView::ModelHasChanged() Line 153 C++ svxcoremi.dll!SdrPaintView::FlushComeBackTimer() Line 373 C++ svxcoremi.dll!SdrMarkView::PickHandle(const Point & rPnt={...}, unsigned long nOptions=0, SdrHdl * pHdl0=0x00000000) Line 1302 C++ sdmi.dll!sd::FuDraw::ForcePointer(const MouseEvent * pMEvt=0x00000000) Line 638 + 0x17 bytes C++ sdmi.dll!sd::FuDraw::Activate() Line 587 C++ sdmi.dll!sd::FuSelection::Activate() Line 1112 C++ sdmi.dll!sd::ViewShell::Cancel() Line 1376 C++ sdmi.dll!sd::DrawViewShell::FuTemp03(SfxRequest & rReq={...}) Line 594 + 0xb bytes C++ sdmi.dll!sd::DrawViewShell::FuTemp02(SfxRequest & rReq={...}) Line 731 C++ sdmi.dll!sd::DrawViewShell::FuTemp01(SfxRequest & rReq={...}) Line 457 C++ sdmi.dll!sd::DrawViewShell::FuTemporary(SfxRequest & rReq={...}) Line 995 C++ sdmi.dll!SfxStubGraphicViewShellFuTemporary(SfxShell * pShell=0x0d802350, SfxRequest & rReq={...}) Line 1094 + 0xf bytes C++ sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x1a1d0a bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x1a3f1a bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x1a4cdf bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x2034ce bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x203f8e bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x205c3d bytes tlmi.dll!INetMIMEMessageStream::~INetMIMEMessageStream() + 0x4297 bytes svtmi.dll!SvLBox::SetSelectionMode() + 0x18fa32 bytes svtmi.dll!SvLBox::SetSelectionMode() + 0x19c8c1 bytes svtmi.dll!SvLBox::SetSelectionMode() + 0x1b959e bytes sfxmi.dll!SfxMedium::ForceSynchronStream_Impl() + 0x202c50 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x1f4566 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x1f5c1e bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x1f4808 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x285dd bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x261268 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x2672f6 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x267516 bytes user32.dll!GetDC() + 0x6d bytes user32.dll!GetDC() + 0x14f bytes user32.dll!GetWindowLongW() + 0x127 bytes user32.dll!DispatchMessageW() + 0xf bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x289362 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x2899d5 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x289a6f bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x289b14 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x2bb0d bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x2cdd2 bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x32d7f bytes vclmi.dll!OutputDevice::SetDigitLanguage() + 0x32e2a bytes sofficeapp.dll!GetVersionInfo() + 0x357b6 bytes soffice.bin!00401034() soffice.bin!00401055() soffice.bin!00401428() soffice.bin!0040118f() kernel32.dll!RegisterWaitForInputIdle() + 0x49 bytes
AW: Problem caught. In the SdrMeasurePrimitive2D decomposition implementation line style is used even when not existant. Seems as if never before anyone has created a measure primitive with linestlye == none. Making handling safe...
Created attachment 64966 [details] Part1 of fix
Created attachment 64967 [details] part2 of fix
AW: Added patches, also commited changes to CWS aw078. Waiting for status.
AW: Added to CWS impress178, building svx...
AW: Checked in, need to test finished version...
AW: Checked, works.
AW->WG: Checked in unxlngi6.pro version, works as expected. Please review.
Verified in CWS.