ofz#7146 Infinite recurse
Change-Id: I0afc3a73933e3370c5b1aeca1beabec94c56a6e6 Reviewed-on: https://gerrit.libreoffice.org/51911 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
@@ -83,6 +83,7 @@ LwpVirtualLayout::LwpVirtualLayout(LwpObjectHeader const &objHdr, LwpSvStream* p
|
||||
, m_bGettingMarginsValue(false)
|
||||
, m_bGettingExtMarginsValue(false)
|
||||
, m_bGettingUsePrinterSettings(false)
|
||||
, m_bGettingScaleCenter(false)
|
||||
, m_bGettingUseWhen(false)
|
||||
, m_bGettingStyleLayout(false)
|
||||
, m_nAttributes(0)
|
||||
@@ -953,16 +954,26 @@ sal_uInt16 LwpMiddleLayout::GetScaleTile()
|
||||
|
||||
sal_uInt16 LwpMiddleLayout::GetScaleCenter()
|
||||
{
|
||||
if (m_bGettingScaleCenter)
|
||||
throw std::runtime_error("recursion in layout");
|
||||
m_bGettingScaleCenter = true;
|
||||
|
||||
sal_uInt16 nRet = 0;
|
||||
|
||||
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is() && GetLayoutScale())
|
||||
{
|
||||
return (GetLayoutScale()->GetPlacement() & LwpLayoutScale::CENTERED)
|
||||
nRet = (GetLayoutScale()->GetPlacement() & LwpLayoutScale::CENTERED)
|
||||
? 1 : 0;
|
||||
}
|
||||
rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
|
||||
if (xBase.is())
|
||||
return dynamic_cast<LwpMiddleLayout&>(*xBase.get()).GetScaleCenter();
|
||||
else
|
||||
return 0;
|
||||
{
|
||||
rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
|
||||
if (xBase.is())
|
||||
nRet = dynamic_cast<LwpMiddleLayout&>(*xBase.get()).GetScaleCenter();
|
||||
}
|
||||
|
||||
m_bGettingScaleCenter = false;
|
||||
return nRet;
|
||||
}
|
||||
|
||||
bool LwpMiddleLayout::CanSizeRight()
|
||||
|
@@ -237,6 +237,7 @@ protected:
|
||||
bool m_bGettingMarginsValue;
|
||||
bool m_bGettingExtMarginsValue;
|
||||
bool m_bGettingUsePrinterSettings;
|
||||
bool m_bGettingScaleCenter;
|
||||
bool m_bGettingUseWhen;
|
||||
bool m_bGettingStyleLayout;
|
||||
sal_uInt32 m_nAttributes;
|
||||
|
Reference in New Issue
Block a user