Kaydet (Commit) d38674f3 authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#4548 infinite regress in GetUsePrinterSettings

Change-Id: Iebd51c8724eebb942af45f3be24718a7a1278183
Reviewed-on: https://gerrit.libreoffice.org/45991Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 37c719d9
......@@ -81,6 +81,7 @@ LwpVirtualLayout::LwpVirtualLayout(LwpObjectHeader const &objHdr, LwpSvStream* p
, m_bGettingIsProtected(false)
, m_bGettingMarginsValue(false)
, m_bGettingExtMarginsValue(false)
, m_bGettingUsePrinterSettings(false)
, m_nAttributes(0)
, m_nAttributes2(0)
, m_nAttributes3(0)
......@@ -1405,19 +1406,27 @@ XFBGImage* LwpMiddleLayout::GetXFBGImage()
*/
bool LwpMiddleLayout::GetUsePrinterSettings()
{
if (m_bGettingUsePrinterSettings)
throw std::runtime_error("recursion in layout");
m_bGettingUsePrinterSettings = true;
bool bRet = false;
if(m_nOverrideFlag & OVER_SIZE)
{
return (m_nAttributes3 & STYLE3_USEPRINTERSETTINGS) != 0;
bRet = (m_nAttributes3 & STYLE3_USEPRINTERSETTINGS) != 0;
}
else
{
rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(xBase.get()))
{
return pLay->GetUsePrinterSettings();
bRet = pLay->GetUsePrinterSettings();
}
}
return false;
m_bGettingMarginsValue = false;
return bRet;
}
//Check whether there are contents in the layout
......
......@@ -226,6 +226,7 @@ protected:
bool m_bGettingIsProtected;
bool m_bGettingMarginsValue;
bool m_bGettingExtMarginsValue;
bool m_bGettingUsePrinterSettings;
sal_uInt32 m_nAttributes;
sal_uInt32 m_nAttributes2;
sal_uInt32 m_nAttributes3;
......
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