diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-03-16 11:00:17 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-03-16 11:00:17 +0000 |
commit | 60fd827d609b85387d28b010bf08f0eee91f8f4d (patch) | |
tree | dc81f25cb89eb264c00adf6e8c9efb31288f67d5 | |
parent | b096225ab1bb97f666dc2cbf1de804121a5c7ba6 (diff) |
CWS-TOOLING: integrate CWS sw31bf07
2009-03-10 12:55:42 +0100 od r269266 : #i100014# - adjust <Outliner::ImplCheckParagraphs(..)> and its usage to avoid endless loop
2009-03-10 10:24:45 +0100 od r269250 : #i100035# method <SwView::~SwView()>
- set member variable <mpPostItMgr> to 0 after its destruction
to suppress further access on it.
2009-03-10 10:10:05 +0100 od r269247 : #i100043# method <OutWW8_SwTxtNode(..)>
- if paragraph is numbered via set list style at paragraph style
and list level indent values of LABEL_ALIGNMENT list level style
not applicable, put indent values into temporary itemset for export
NOTE: This is a correction of fix for issue i94187
-rw-r--r-- | svx/source/outliner/outleeng.cxx | 6 | ||||
-rw-r--r-- | svx/source/outliner/outliner.cxx | 29 | ||||
-rw-r--r-- | svx/source/outliner/outlvw.cxx | 16 |
3 files changed, 41 insertions, 10 deletions
diff --git a/svx/source/outliner/outleeng.cxx b/svx/source/outliner/outleeng.cxx index 3ee790dc44..43fea6e316 100644 --- a/svx/source/outliner/outleeng.cxx +++ b/svx/source/outliner/outleeng.cxx @@ -228,7 +228,11 @@ void OutlinerEditEng::SetParaAttribs( USHORT nPara, const SfxItemSet& rSet ) EditEngine::SetParaAttribs( (USHORT)nPara, rSet ); pOwner->ImplCheckNumBulletItem( (USHORT)nPara ); - pOwner->ImplCheckParagraphs( (USHORT)nPara, (USHORT) (pOwner->pParaList->GetParagraphCount()-1) ); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + pOwner->ImplCheckParagraphs( (USHORT)nPara, (USHORT) (pOwner->pParaList->GetParagraphCount()) ); + // <-- if ( !IsInUndo() && IsUndoEnabled() ) pOwner->UndoActionEnd( OLUNDO_ATTR ); diff --git a/svx/source/outliner/outliner.cxx b/svx/source/outliner/outliner.cxx index 988a73dab7..7a298c4c4b 100644 --- a/svx/source/outliner/outliner.cxx +++ b/svx/source/outliner/outliner.cxx @@ -332,7 +332,11 @@ void Outliner::SetNumberingStartValue( sal_uInt16 nPara, sal_Int16 nNumberingSta pPara->IsParaIsNumberingRestart(), pPara->IsParaIsNumberingRestart() ) ); pPara->SetNumberingStartValue( nNumberingStartValue ); - ImplCheckParagraphs( nPara, (USHORT) (pParaList->GetParagraphCount()-1) ); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + ImplCheckParagraphs( nPara, (USHORT) (pParaList->GetParagraphCount()) ); + // <-- pEditEngine->SetModified(); } } @@ -356,7 +360,11 @@ void Outliner::SetParaIsNumberingRestart( sal_uInt16 nPara, sal_Bool bParaIsNumb pPara->IsParaIsNumberingRestart(), bParaIsNumberingRestart ) ); pPara->SetParaIsNumberingRestart( bParaIsNumberingRestart ); - ImplCheckParagraphs( nPara, (USHORT) (pParaList->GetParagraphCount()-1) ); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + ImplCheckParagraphs( nPara, (USHORT) (pParaList->GetParagraphCount()) ); + // <-- pEditEngine->SetModified(); } } @@ -596,7 +604,11 @@ void Outliner::SetText( const OutlinerParaObject& rPObj ) ImplCheckNumBulletItem( nCurPara ); } - ImplCheckParagraphs( 0, (USHORT) (pParaList->GetParagraphCount()-1) ); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + ImplCheckParagraphs( 0, (USHORT) (pParaList->GetParagraphCount()) ); + // <-- EnableUndo( bUndo ); ImplBlockInsertionCallbacks( FALSE ); @@ -639,7 +651,11 @@ void Outliner::AddText( const OutlinerParaObject& rPObj ) } DBG_ASSERT( pEditEngine->GetParagraphCount()==pParaList->GetParagraphCount(), "SetText: OutOfSync" ); - ImplCheckParagraphs( (USHORT)nPara, (USHORT) (pParaList->GetParagraphCount()-1) ); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + ImplCheckParagraphs( (USHORT)nPara, (USHORT) (pParaList->GetParagraphCount()) ); + // <-- ImplBlockInsertionCallbacks( FALSE ); pEditEngine->SetUpdateMode( bUpdate ); @@ -1501,7 +1517,10 @@ void Outliner::ImplCheckParagraphs( USHORT nStart, USHORT nEnd ) { DBG_CHKTHIS( Outliner, 0 ); - for ( USHORT n = nStart; n <= nEnd; n++ ) + // --> OD 2009-03-10 #i100014# + // assure that the following for-loop does not loop forever + for ( ULONG n = nStart; n < nEnd; n++ ) + // <-- { Paragraph* pPara = pParaList->GetParagraph( n ); if (pPara) diff --git a/svx/source/outliner/outlvw.cxx b/svx/source/outliner/outlvw.cxx index a415692ad4..73e5d7617c 100644 --- a/svx/source/outliner/outlvw.cxx +++ b/svx/source/outliner/outlvw.cxx @@ -1,7 +1,7 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * + * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite @@ -1192,7 +1192,11 @@ void OutlinerView::ToggleBullets() } } - USHORT nParaCount = (USHORT) (pOwner->pParaList->GetParagraphCount()-1); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + USHORT nParaCount = (USHORT) (pOwner->pParaList->GetParagraphCount()); + // <-- pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount ); pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nParaCount, 0 ) ); @@ -1222,7 +1226,11 @@ void OutlinerView::EnableBullets() } } - USHORT nParaCount = (USHORT) (pOwner->pParaList->GetParagraphCount()-1); + // --> OD 2009-03-10 #i100014# + // It is not a good idea to substract 1 from a count and cast the result + // to USHORT without check, if the count is 0. + USHORT nParaCount = (USHORT) (pOwner->pParaList->GetParagraphCount()); + // <-- pOwner->ImplCheckParagraphs( aSel.nStartPara, nParaCount ); pOwner->pEditEngine->QuickMarkInvalid( ESelection( aSel.nStartPara, 0, nParaCount, 0 ) ); @@ -1235,7 +1243,7 @@ void OutlinerView::EnableBullets() void OutlinerView::RemoveAttribsKeepLanguages( BOOL bRemoveParaAttribs ) { RemoveAttribs( bRemoveParaAttribs, 0, TRUE /*keep language attribs*/ ); -} +} void OutlinerView::RemoveAttribs( BOOL bRemoveParaAttribs, USHORT nWhich, BOOL bKeepLanguages ) { |