diff options
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/editdbg.cxx | 2 | ||||
-rw-r--r-- | editeng/source/items/numitem.cxx | 11 | ||||
-rw-r--r-- | editeng/source/outliner/outliner.cxx | 2 | ||||
-rw-r--r-- | editeng/source/uno/unonrule.cxx | 2 |
4 files changed, 11 insertions, 6 deletions
diff --git a/editeng/source/editeng/editdbg.cxx b/editeng/source/editeng/editdbg.cxx index 3a8232e4be34..51bf4a63498f 100644 --- a/editeng/source/editeng/editdbg.cxx +++ b/editeng/source/editeng/editdbg.cxx @@ -90,7 +90,7 @@ OString DbgOutItem(const SfxItemPool& rPool, const SfxPoolItem& rItem) aDebStr.append('('); aDebStr.append(static_cast<sal_Int32>(pFmt->GetFirstLineOffset())); aDebStr.append(','); - aDebStr.append(static_cast<sal_Int32>(pFmt->GetAbsLSpace())); + aDebStr.append(pFmt->GetAbsLSpace()); aDebStr.append(','); if ( pFmt->GetNumberingType() == SVX_NUM_BITMAP ) aDebStr.append("Bitmap"); diff --git a/editeng/source/items/numitem.cxx b/editeng/source/items/numitem.cxx index ae2c584ff83e..0001e6f1af6f 100644 --- a/editeng/source/items/numitem.cxx +++ b/editeng/source/items/numitem.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/text/VertOrientation.hpp> #include <com/sun/star/text/RelOrientation.hpp> #include <editeng/brushitem.hxx> +#include <o3tl/clamp.hxx> #include <vcl/font.hxx> #include <vcl/settings.hxx> #include <editeng/editids.hrc> @@ -197,7 +198,9 @@ SvxNumberFormat::SvxNumberFormat( SvStream &rStream ) rStream.ReadUInt16( nTmp16 ); cBullet = static_cast<sal_Unicode>(nTmp16); rStream.ReadInt16( nFirstLineOffset ); - rStream.ReadInt16( nAbsLSpace ); + sal_Int16 temp; + rStream.ReadInt16( temp ); + nAbsLSpace = temp; rStream.SeekRel(2); //skip old now unused nLSpace; rStream.ReadInt16( nCharTextDistance ); @@ -259,7 +262,9 @@ void SvxNumberFormat::Store(SvStream &rStream, FontToSubsFontConverter pConverte rStream.WriteUInt16( cBullet ); rStream.WriteInt16( nFirstLineOffset ); - rStream.WriteInt16( nAbsLSpace ); + rStream.WriteInt16( + sal_Int16(o3tl::clamp<sal_Int32>(nAbsLSpace, SAL_MIN_INT16, SAL_MAX_INT16)) ); + //TODO: better way to handle out-of-bounds value? rStream.WriteInt16( 0 ); // write a dummy for old now unused nLSpace rStream.WriteInt16( nCharTextDistance ); @@ -441,7 +446,7 @@ void SvxNumberFormat::SetPositionAndSpaceMode( SvxNumPositionAndSpaceMode ePosit mePositionAndSpaceMode = ePositionAndSpaceMode; } -short SvxNumberFormat::GetAbsLSpace() const +sal_Int32 SvxNumberFormat::GetAbsLSpace() const { return mePositionAndSpaceMode == LABEL_WIDTH_AND_POSITION ? nAbsLSpace diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx index 09397d45f6b6..186a1c17daca 100644 --- a/editeng/source/outliner/outliner.cxx +++ b/editeng/source/outliner/outliner.cxx @@ -1512,7 +1512,7 @@ tools::Rectangle Outliner::ImpCalcBulletArea( sal_Int32 nPara, bool bAdjust, boo bool bOutlineMode = bool( pEditEngine->GetControlWord() & EEControlBits::OUTLINER ); // the ODF attribute text:space-before which holds the spacing to add to the left of the label - const short nSpaceBefore = pFmt->GetAbsLSpace() + pFmt->GetFirstLineOffset(); + const auto nSpaceBefore = pFmt->GetAbsLSpace() + pFmt->GetFirstLineOffset(); const SvxLRSpaceItem& rLR = pEditEngine->GetParaAttrib( nPara, bOutlineMode ? EE_PARA_OUTLLRSPACE : EE_PARA_LRSPACE ); aTopLeft.setX( rLR.GetTextLeft() + rLR.GetTextFirstLineOfst() + nSpaceBefore ); diff --git a/editeng/source/uno/unonrule.cxx b/editeng/source/uno/unonrule.cxx index 3acef998e3d1..30c7deab2e94 100644 --- a/editeng/source/uno/unonrule.cxx +++ b/editeng/source/uno/unonrule.cxx @@ -245,7 +245,7 @@ Sequence<beans::PropertyValue> SvxUnoNumberingRules::getNumberingRuleByIndex(sal aVal <<= static_cast<sal_Int16>(rFmt.GetStart()); pArray[nIdx++] = beans::PropertyValue(UNO_NAME_NRULE_START_WITH, -1, aVal, beans::PropertyState_DIRECT_VALUE); - aVal <<= static_cast<sal_Int32>(rFmt.GetAbsLSpace()); + aVal <<= rFmt.GetAbsLSpace(); pArray[nIdx++] = beans::PropertyValue(UNO_NAME_NRULE_LEFT_MARGIN, -1, aVal, beans::PropertyState_DIRECT_VALUE); aVal <<= static_cast<sal_Int32>(rFmt.GetFirstLineOffset()); |