Issue 102048

Summary: Crash when changing style for dimension line
Product: Draw Reporter: eric.savary
Component: formattingAssignee: wolframgarten
Status: CLOSED FIXED QA Contact: issues@graphics <issues>
Severity: Trivial    
Priority: P2 CC: issues
Version: DEV300m48   
Target Milestone: OOo 3.2   
Hardware: PC   
OS: Windows Vista   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Issue Depends on:    
Issue Blocks: 99999    
Attachments:
Description Flags
Part1 of fix
none
part2 of fix none

Description eric.savary 2009-05-18 21:18:56 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...
Comment 1 wolframgarten 2009-05-19 07:32:47 UTC
Reproducible. Reassigned.
Comment 2 groucho266 2009-09-25 10:03:02 UTC
@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	
Comment 3 Armin Le Grand 2009-09-25 11:38:25 UTC
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...
Comment 4 Armin Le Grand 2009-09-25 12:48:59 UTC
Created attachment 64966 [details]
Part1 of fix
Comment 5 Armin Le Grand 2009-09-25 12:49:35 UTC
Created attachment 64967 [details]
part2 of fix
Comment 6 Armin Le Grand 2009-09-25 13:11:20 UTC
AW: Added patches, also commited changes to CWS aw078. Waiting for status.
Comment 7 Armin Le Grand 2009-09-30 14:29:25 UTC
AW: Added to CWS impress178, building svx...
Comment 8 Armin Le Grand 2009-09-30 14:58:17 UTC
AW: Checked in, need to test finished version...
Comment 9 Armin Le Grand 2009-09-30 18:03:31 UTC
AW: Checked, works.
Comment 10 Armin Le Grand 2009-10-19 10:48:35 UTC
AW->WG: Checked in unxlngi6.pro version, works as expected. Please review.
Comment 11 wolframgarten 2009-10-20 13:42:58 UTC
Verified in CWS.