Kaydet (Commit) e617bf01 authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Andras Timar

ofz#974 check SetBorder bounds like the other maHorizontalBorders users

Change-Id: Iac113433ac2317ddfebc68ed793c481384d56551
Reviewed-on: https://gerrit.libreoffice.org/35965Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
(cherry picked from commit 17c2f64e)
üst 5bea1d8b
......@@ -916,36 +916,40 @@ bool TableLayouter::HasPriority( const SvxBorderLine* pThis, const SvxBorderLine
}
}
void TableLayouter::SetBorder( sal_Int32 nCol, sal_Int32 nRow, bool bHorizontal, const SvxBorderLine* pLine )
{
if( pLine == nullptr )
if (!pLine)
pLine = &gEmptyBorder;
SvxBorderLine *pOld = bHorizontal ? maHorizontalBorders[nCol][nRow] : maVerticalBorders[nCol][nRow];
BorderLineMap& rMap = bHorizontal ? maHorizontalBorders : maVerticalBorders;
if( HasPriority( pLine, pOld ) )
if( (nCol >= 0) && (nCol < sal::static_int_cast<sal_Int32>(rMap.size())) &&
(nRow >= 0) && (nRow < sal::static_int_cast<sal_Int32>(rMap[nCol].size())) )
{
if( (pOld != nullptr) && (pOld != &gEmptyBorder) )
delete pOld;
SvxBorderLine *pOld = rMap[nCol][nRow];
SvxBorderLine* pNew = ( pLine != &gEmptyBorder ) ? new SvxBorderLine(*pLine) : &gEmptyBorder;
if (HasPriority(pLine, pOld))
{
if (pOld && pOld != &gEmptyBorder)
delete pOld;
if( bHorizontal )
maHorizontalBorders[nCol][nRow] = pNew;
else
maVerticalBorders[nCol][nRow] = pNew;
SvxBorderLine* pNew = (pLine != &gEmptyBorder) ? new SvxBorderLine(*pLine) : &gEmptyBorder;
rMap[nCol][nRow] = pNew;
}
}
else
{
OSL_FAIL( "sdr::table::TableLayouter::SetBorder(), invalid border!" );
}
}
void TableLayouter::ClearBorderLayout()
{
ClearBorderLayout(maHorizontalBorders);
ClearBorderLayout(maVerticalBorders);
}
void TableLayouter::ClearBorderLayout(BorderLineMap& rMap)
{
const sal_Int32 nColCount = rMap.size();
......@@ -967,7 +971,6 @@ void TableLayouter::ClearBorderLayout(BorderLineMap& rMap)
}
}
void TableLayouter::ResizeBorderLayout()
{
ClearBorderLayout();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment