[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - 34 commits - configure.ac cui/source cui/uiconfig lotuswordpro/source sfx2/source
Andras Timar
andras.timar at collabora.com
Thu Dec 10 07:13:55 PST 2015
configure.ac | 2
cui/source/dialogs/iconcdlg.cxx | 4
cui/uiconfig/ui/spelloptionsdialog.ui | 1
lotuswordpro/source/filter/bencont.cxx | 2
lotuswordpro/source/filter/lwp9reader.cxx | 2
lotuswordpro/source/filter/lwpcelllayout.cxx | 15 +
lotuswordpro/source/filter/lwpdoc.cxx | 24 +-
lotuswordpro/source/filter/lwpfnlayout.cxx | 4
lotuswordpro/source/filter/lwpfont.cxx | 5
lotuswordpro/source/filter/lwpfootnote.cxx | 2
lotuswordpro/source/filter/lwpfoundry.cxx | 8
lotuswordpro/source/filter/lwpframelayout.cxx | 10 -
lotuswordpro/source/filter/lwpfribframe.cxx | 2
lotuswordpro/source/filter/lwpfribptr.cxx | 6
lotuswordpro/source/filter/lwpfribsection.cxx | 6
lotuswordpro/source/filter/lwpfribtable.cxx | 6
lotuswordpro/source/filter/lwpidxmgr.cxx | 7
lotuswordpro/source/filter/lwplayout.cxx | 202 +++++++++++--------------
lotuswordpro/source/filter/lwplayout.hxx | 5
lotuswordpro/source/filter/lwpnotes.cxx | 6
lotuswordpro/source/filter/lwpobj.cxx | 3
lotuswordpro/source/filter/lwpobj.hxx | 29 +++
lotuswordpro/source/filter/lwpobjid.cxx | 6
lotuswordpro/source/filter/lwpobjstrm.cxx | 2
lotuswordpro/source/filter/lwppagelayout.cxx | 11 -
lotuswordpro/source/filter/lwppara.cxx | 55 +++---
lotuswordpro/source/filter/lwppara.hxx | 2
lotuswordpro/source/filter/lwppara1.cxx | 2
lotuswordpro/source/filter/lwprowlayout.cxx | 7
lotuswordpro/source/filter/lwpsilverbullet.cxx | 5
lotuswordpro/source/filter/lwptablelayout.cxx | 2
lotuswordpro/source/filter/lwptabrack.cxx | 2
lotuswordpro/source/filter/lwptoc.cxx | 6
lotuswordpro/source/filter/lwpvpointer.cxx | 2
sfx2/source/dialog/backingwindow.cxx | 3
sfx2/source/dialog/backingwindow.hxx | 3
36 files changed, 253 insertions(+), 206 deletions(-)
New commits:
commit 804c19f48d88ad4efc11dc4046b75bb6d6db8ff6
Author: Andras Timar <andras.timar at collabora.com>
Date: Thu Dec 10 16:17:43 2015 +0100
Bump version to 5.0-13
Change-Id: I2dafee880299d1f822f1cf3856f3e48e3987b6b0
diff --git a/configure.ac b/configure.ac
index 37753d3..db9ab05 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
# several non-alphanumeric characters, those are split off and used only for the
# ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
-AC_INIT([Collabora Office],[5.0.10.12],[],[],[https://CollaboraOffice.com/])
+AC_INIT([Collabora Office],[5.0.10.13],[],[],[https://CollaboraOffice.com/])
AC_PREREQ([2.59])
commit a2920ac6cd255cf27e51de58113c915ff53733fc
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 17:15:10 2015 +0000
Resolves: tdf#86845 hyperlink details not retained between tabs
Change-Id: Ib6c1df4a97598c156b10b1730debb078e362e0d2
(cherry picked from commit eb38493c4101d8777052267ee83a5d4f883dd9ac)
(cherry picked from commit e34e0c8d97b90786e9ca9cf88d9fc3e127ce8350)
Reviewed-on: https://gerrit.libreoffice.org/20549
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit b82567327fa64ceb7d486774df3ac9c95763009c)
diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx
index 0b77226..d6eab9a 100644
--- a/cui/source/dialogs/iconcdlg.cxx
+++ b/cui/source/dialogs/iconcdlg.cxx
@@ -333,8 +333,6 @@ void IconChoiceDialog::ShowPage(sal_uInt16 nId)
{
sal_uInt16 nOldPageId = GetCurPageId();
bool bInvalidate = nOldPageId != nId;
- SetCurPageId(nId);
- ActivatePageImpl();
if (bInvalidate)
{
IconChoicePageData* pOldData = GetPageData(nOldPageId);
@@ -346,6 +344,8 @@ void IconChoiceDialog::ShowPage(sal_uInt16 nId)
Invalidate();
}
+ SetCurPageId(nId);
+ ActivatePageImpl();
IconChoicePageData* pNewData = GetPageData(nId);
if (pNewData && pNewData->pPage)
ShowPageImpl(pNewData);
commit fbff9f884dbf5aa1dc962d5b608c6ae1941a50ff
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Thu Dec 10 13:38:52 2015 +0100
Memory leak
(cherry picked from commit 5ac6e00274e732435b55c2908db9cea658fe549b)
Conflicts:
sfx2/source/dialog/backingwindow.cxx
Change-Id: Ica40750d628946678019376d91db67ba3f9ed67e
Reviewed-on: https://gerrit.libreoffice.org/20601
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 75f25d00848068c677fca450d35aa59af0422c60)
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index 5686c43..2c0d8c0 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -96,7 +96,6 @@ BackingWindow::BackingWindow( vcl::Window* i_pParent ) :
mbIsSaveMode( false ),
mbInitControls( false ),
mnHideExternalLinks( 0 ),
- mpAccExec( NULL ),
maSelTemplates(cmpSelectionItems),
maSelFolders(cmpSelectionItems)
@@ -443,7 +442,7 @@ bool BackingWindow::PreNotify( NotifyEvent& rNEvt )
// try the 'normal' accelerators (so that eg. Ctrl+Q works)
if (!mpAccExec)
{
- mpAccExec = svt::AcceleratorExecute::createAcceleratorHelper();
+ mpAccExec.reset(svt::AcceleratorExecute::createAcceleratorHelper());
mpAccExec->init( comphelper::getProcessComponentContext(), mxFrame);
}
diff --git a/sfx2/source/dialog/backingwindow.hxx b/sfx2/source/dialog/backingwindow.hxx
index 8dfa84f..313361d 100644
--- a/sfx2/source/dialog/backingwindow.hxx
+++ b/sfx2/source/dialog/backingwindow.hxx
@@ -44,6 +44,7 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XDesktop2.hpp>
+#include <memory>
#include <set>
class ToolBox;
@@ -92,7 +93,7 @@ class BackingWindow : public vcl::Window, public VclBuilderContainer
bool mbIsSaveMode;
bool mbInitControls;
sal_Int32 mnHideExternalLinks;
- svt::AcceleratorExecute* mpAccExec;
+ std::unique_ptr<svt::AcceleratorExecute> mpAccExec;
void setupButton(PushButton* pButton);
void setupButton(MenuButton* pButton);
commit 70ba21c385c9afb65c2183a26c5b7af2a8dfd477
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 09:49:07 2015 +0000
guard against missing table layout
(cherry picked from commit 0c876483d278e3e5ba43e9eaf40ca713b6099703)
Reviewed-on: https://gerrit.libreoffice.org/20576
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 4bc26e006dd4bde95eef706de43228679a41c4f7)
Change-Id: I4bc7a7283f63124ccb50957ea64791644e01e267
Reviewed-on: https://gerrit.libreoffice.org/20577
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit e81d193d56f219610da5b8b10717741d8c5dc63c)
diff --git a/lotuswordpro/source/filter/lwpcelllayout.cxx b/lotuswordpro/source/filter/lwpcelllayout.cxx
index a587ec9..13d7307 100644
--- a/lotuswordpro/source/filter/lwpcelllayout.cxx
+++ b/lotuswordpro/source/filter/lwpcelllayout.cxx
@@ -696,8 +696,10 @@ LwpConnectedCellLayout::~LwpConnectedCellLayout()
*/
void LwpConnectedCellLayout::SetCellMap()
{
- // this function is called from LwpTableLayout, so it can't be NULL
LwpTableLayout * pTableLayout = GetTableLayout();
+ if (!pTableLayout)
+ return;
+
sal_uInt16 nRowSpan = m_nRealrowspan;
for (sal_uInt16 iLoop = 0; iLoop < nRowSpan; iLoop ++)
diff --git a/lotuswordpro/source/filter/lwprowlayout.cxx b/lotuswordpro/source/filter/lwprowlayout.cxx
index e7bae0f..1f8265e 100644
--- a/lotuswordpro/source/filter/lwprowlayout.cxx
+++ b/lotuswordpro/source/filter/lwprowlayout.cxx
@@ -366,11 +366,14 @@ sal_uInt16 LwpRowLayout::GetCurMaxSpannedRows(sal_uInt8 nStartCol,sal_uInt8 nEnd
*/
void LwpRowLayout::ConvertCommonRow(XFTable* pXFTable,sal_uInt8 nStartCol,sal_uInt8 nEndCol)
{
+ LwpTableLayout* pTableLayout = GetParentTableLayout();
+ if (!pTableLayout)
+ return;
+
XFRow* pRow = new XFRow;
pRow->SetStyleName(m_StyleName);
- XFCell * pCell = NULL;
- LwpTableLayout* pTableLayout = GetParentTableLayout();
+ XFCell * pCell = nullptr;
LwpTable* pTable = pTableLayout->GetTable();
sal_uInt8 nCellStartCol,nCellEndCol;
commit 44582512701e97f5f23ad86e904c9faa4c2953ce
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 10:00:58 2015 +0000
guard against infinite recursion on parsing objects
Change-Id: Ia6502afde54dbf379bc9951c80c6594f1f436ef5
(cherry picked from commit fbd329800340a496def839181858964b1e3709a5)
Reviewed-on: https://gerrit.libreoffice.org/20579
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 564687e728c98fec5ba6ffa39007793b2b4aa4e8)
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx
index c93b668..a0dc530 100644
--- a/lotuswordpro/source/filter/lwpdoc.cxx
+++ b/lotuswordpro/source/filter/lwpdoc.cxx
@@ -166,7 +166,7 @@ void LwpDocument::Parse(IXFStream* pOutputStream)
rtl::Reference<LwpObject> pDocSock = GetSocket().obj( VO_DOCSOCK );
if(pDocSock.is())
{
- pDocSock->Parse(pOutputStream);
+ pDocSock->DoParse(pOutputStream);
}
}
@@ -412,7 +412,7 @@ void LwpDocument::ParseDocContent(IXFStream* pOutputStream)
return;
}
pLayoutObj->SetFoundry(m_pFoundry);
- pLayoutObj->Parse(pOutputStream);
+ pLayoutObj->DoParse(pOutputStream);
}
/**
@@ -795,11 +795,11 @@ void LwpDocSock::Parse(IXFStream* pOutputStream)
{
rtl::Reference<LwpObject> pDoc = GetChildHead().obj();
if(pDoc.is())
- pDoc->Parse(pOutputStream);
+ pDoc->DoParse(pOutputStream);
pDoc = GetNext().obj();
if(pDoc.is())
- pDoc->Parse(pOutputStream);
+ pDoc->DoParse(pOutputStream);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx
index 47a5614..feff262 100644
--- a/lotuswordpro/source/filter/lwpframelayout.cxx
+++ b/lotuswordpro/source/filter/lwpframelayout.cxx
@@ -1155,7 +1155,7 @@ void LwpDropcapLayout::Parse(IXFStream* pOutputStream)
if(pPara.is())
{
pPara->SetFoundry(m_pFoundry);
- pPara->Parse(pOutputStream);
+ pPara->DoParse(pOutputStream);
}
}
diff --git a/lotuswordpro/source/filter/lwpobj.cxx b/lotuswordpro/source/filter/lwpobj.cxx
index 010b60e..be9a07f 100644
--- a/lotuswordpro/source/filter/lwpobj.cxx
+++ b/lotuswordpro/source/filter/lwpobj.cxx
@@ -64,7 +64,8 @@
* @descr construct lwpobject from stream
*/
LwpObject::LwpObject(LwpObjectHeader objHdr, LwpSvStream* pStrm)
- : m_ObjHdr(objHdr), m_pObjStrm(nullptr), m_pFoundry(nullptr), m_pStrm(pStrm), m_bRegisteringStyle(false)
+ : m_ObjHdr(objHdr), m_pObjStrm(nullptr), m_pFoundry(nullptr)
+ , m_pStrm(pStrm), m_bRegisteringStyle(false), m_bParsingStyle(false)
{
m_pObjStrm = new LwpObjectStream(pStrm, m_ObjHdr.IsCompressed(),
static_cast<sal_uInt16>(m_ObjHdr.GetSize()) );
diff --git a/lotuswordpro/source/filter/lwpobj.hxx b/lotuswordpro/source/filter/lwpobj.hxx
index 23ed6b2..978bc49 100644
--- a/lotuswordpro/source/filter/lwpobj.hxx
+++ b/lotuswordpro/source/filter/lwpobj.hxx
@@ -95,9 +95,11 @@ protected:
LwpFoundry* m_pFoundry;
LwpSvStream* m_pStrm;
bool m_bRegisteringStyle;
+ bool m_bParsingStyle;
protected:
virtual void Read();
virtual void RegisterStyle();
+ virtual void Parse(IXFStream* pOutputStream);
public:
void QuickRead();
//calls RegisterStyle but bails if DoRegisterStyle is called
@@ -110,7 +112,17 @@ public:
RegisterStyle();
m_bRegisteringStyle = false;
}
- virtual void Parse(IXFStream* pOutputStream);
+ //calls Parse but bails if DoParse is called
+ //on the same object recursively
+ void DoParse(IXFStream* pOutputStream)
+ {
+ if (m_bParsingStyle)
+ throw std::runtime_error("recursion in parsing");
+ m_bParsingStyle = true;
+ Parse(pOutputStream);
+ m_bParsingStyle = false;
+ }
+
virtual void XFConvert(XFContentContainer* pCont);
LwpFoundry* GetFoundry(){return m_pFoundry;}
diff --git a/lotuswordpro/source/filter/lwppagelayout.cxx b/lotuswordpro/source/filter/lwppagelayout.cxx
index 5604863..0f78899 100644
--- a/lotuswordpro/source/filter/lwppagelayout.cxx
+++ b/lotuswordpro/source/filter/lwppagelayout.cxx
@@ -127,7 +127,7 @@ void LwpPageLayout::Parse(IXFStream* pOutputStream)
if(pStory.is())
{
pStory->SetFoundry(m_pFoundry);
- pStory->Parse(pOutputStream); //Do not parse the next story
+ pStory->DoParse(pOutputStream); //Do not parse the next story
}
}
commit 3022266d13f6169612d359e383b8f026a997e171
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 10:13:51 2015 +0000
guard against infinite recursion
Change-Id: I43e195df570990f21c780311a98be64b682e5315
(cherry picked from commit 338c6ba3a0983009cfd1faff52ac56d6ea092d6f)
Reviewed-on: https://gerrit.libreoffice.org/20582
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 1aba52d136d6a2abe7fbb7d6e17c6f1e7c6eed6a)
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx
index 0a3597e..c93b668 100644
--- a/lotuswordpro/source/filter/lwpdoc.cxx
+++ b/lotuswordpro/source/filter/lwpdoc.cxx
@@ -540,7 +540,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
LwpDocument* pDivision = GetLastDivision();
- while(pDivision)
+ while (pDivision && pDivision != this)
{
LwpDocument* pContentDivision = pDivision->GetLastDivisionWithContents();
if(pContentDivision)
commit e97016f46cb4d5119097985c53dc4da62056de39
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 09:35:46 2015 +0000
guard against missing spacing property
(cherry picked from commit 10de96bf0fb820b38607b0c25a0d3219ad343819)
Reviewed-on: https://gerrit.libreoffice.org/20569
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit cb6f34b370da1d45e1c2b945b60cbcaf7b9c3a45)
Change-Id: If5c50cddfee88cc92852737c1459ebe94b7256bb
Reviewed-on: https://gerrit.libreoffice.org/20570
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 50ca71d16e37cb7612dd26172f5c876882cb700d)
diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx
index ed03231..7ed4d1a 100644
--- a/lotuswordpro/source/filter/lwppara.cxx
+++ b/lotuswordpro/source/filter/lwppara.cxx
@@ -418,18 +418,20 @@ void LwpPara::RegisterStyle()
case PP_LOCAL_SPACING:
{
noSpacing = false;
- if (!rParaStyle.GetSpacing())
- OverrideSpacing(NULL,static_cast<LwpParaSpacingProperty*>(pProps)->GetSpacing(),pOverStyle);
- else
+ LwpSpacingOverride *pSpacing = static_cast<LwpParaSpacingProperty*>(pProps)->GetSpacing();
+ if (pSpacing)
{
- boost::scoped_ptr<LwpSpacingOverride> const
- pSpacing(rParaStyle.GetSpacing()->clone());
- OverrideSpacing(pSpacing.get(),
- static_cast<LwpParaSpacingProperty*>(pProps)->GetSpacing(),
- pOverStyle);
+ if (!rParaStyle.GetSpacing())
+ OverrideSpacing(nullptr, pSpacing, pOverStyle);
+ else
+ {
+ std::unique_ptr<LwpSpacingOverride> const
+ pNewSpacing(rParaStyle.GetSpacing()->clone());
+ OverrideSpacing(pNewSpacing.get(), pSpacing, pOverStyle);
+ }
}
- }
break;
+ }
case PP_LOCAL_BORDER:
{
OverrideParaBorder(pProps, pOverStyle);
commit 5944b2ea8a66d9c613920d65bed85e66264752d2
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 11:48:47 2015 +0000
guard against missing geometry
Change-Id: I6b2945f1d5a1654f6b5d6a5f5287b4cb9514d97c
(cherry picked from commit d4d247866eac108162f43dae2c6ddbd9c12382a6)
(cherry picked from commit 6a9f91915afbcff71121b3485376ab6f1fdcecee)
Reviewed-on: https://gerrit.libreoffice.org/20596
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 8f2cfef6bc3d876cae6718f31cc45fde499c0a52)
diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx
index 8d0cce5..871e886 100644
--- a/lotuswordpro/source/filter/lwplayout.cxx
+++ b/lotuswordpro/source/filter/lwplayout.cxx
@@ -1044,10 +1044,10 @@ sal_Int32 LwpMiddleLayout::DetermineWidth()
{
assert(false);
}
- else
+ else if (LwpLayoutGeometry* pGeo = GetGeometry())
{
m_nAttributes3 |= STYLE3_WIDTHVALID;
- return GetGeometry()->GetWidth();
+ return pGeo->GetWidth();
}
return 0;
}
commit 51d1071053319194781f627d91acfa4c2e8c44c4
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 11:42:46 2015 +0000
use of uninitialized variable
Change-Id: I1149eb9f5946228a2448c121e7ec7211861b3b3d
(cherry picked from commit 65deab68f7918c82026951b04a414eefee2683b2)
(cherry picked from commit 84facdc8305f1d00f661e58aa0c474c7233d47dc)
Reviewed-on: https://gerrit.libreoffice.org/20593
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 7638b0a939a09b23d095bb956051b539d1d9c9d7)
diff --git a/lotuswordpro/source/filter/bencont.cxx b/lotuswordpro/source/filter/bencont.cxx
index a096951..3cb4a09 100644
--- a/lotuswordpro/source/filter/bencont.cxx
+++ b/lotuswordpro/source/filter/bencont.cxx
@@ -231,7 +231,7 @@ BenError LtcBenContainer::SeekFromEnd(long Offset)
*/
LtcUtBenValueStream * LtcBenContainer::FindNextValueStreamWithPropertyName(const char * sPropertyName, LtcUtBenValueStream * pCurrentValueStream)
{
- CBenPropertyName * pPropertyName;
+ CBenPropertyName * pPropertyName(nullptr);
RegisterPropertyName(sPropertyName, &pPropertyName); // Get property name object
if (NULL == pPropertyName)
commit 867f7144ffc88ab15ad84708484665483c6dd3f4
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 10:06:58 2015 +0000
guard against missing table container
Change-Id: I11f6381374c7fc12374cd5089e581ddc777005e2
(cherry picked from commit c732a1ae8cc0cc94bfeddba243657a0b9e52a0f9)
Reviewed-on: https://gerrit.libreoffice.org/20580
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit b54e5c8154edaae9b553cfa7d3c0141c1d4ccce1)
diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx b/lotuswordpro/source/filter/lwptablelayout.cxx
index e2edf49..ecf37c4 100644
--- a/lotuswordpro/source/filter/lwptablelayout.cxx
+++ b/lotuswordpro/source/filter/lwptablelayout.cxx
@@ -719,7 +719,7 @@ void LwpTableLayout::RegisterStyle()
// If the table is not "with paragraph above" placement, create an frame style
// by supertable layout
if ( LwpLayoutRelativityGuts::LAY_INLINE_NEWLINE == nType
- && !pSuper->GetContainerLayout()->IsCell())
+ && (!pSuper->GetContainerLayout() || !pSuper->GetContainerLayout()->IsCell()) )
{
//with para above
// pSuper->ApplyBackColor(pTableStyle);
commit 7c82e36d4af8129123912dd09b5a2a8f8fb8e5fb
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 10:19:12 2015 +0000
protect against missing Ruby Marker
Change-Id: I04809443b5dc50904654936e608360b57c2e85c3
(cherry picked from commit 215516a52fd01170bb4a79828b0f0948884b727a)
(cherry picked from commit 6c296afad6b04328a596a92326aa50b1b480aba0)
Reviewed-on: https://gerrit.libreoffice.org/20584
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit d0bda255ad97d45f68a4d1fb3dcfcf0be4d4c4bc)
diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx
index a3295c7..47a5614 100644
--- a/lotuswordpro/source/filter/lwpframelayout.cxx
+++ b/lotuswordpro/source/filter/lwpframelayout.cxx
@@ -1242,6 +1242,8 @@ void LwpRubyLayout::ConvertContentText()
void LwpRubyLayout::RegisterStyle()
{
LwpRubyMarker* pMarker = GetMarker();
+ if (!pMarker)
+ throw std::runtime_error("missing Ruby Marker");
XFRubyStyle* pRubyStyle = new XFRubyStyle;
commit 2d75df91d24c9eadc9f778356c5bc9d9800cd4c6
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 10:24:19 2015 +0000
guard against missing parent layout
Change-Id: Ib08403edf805367c7392325fcfb66bc7ed4d6f6a
(cherry picked from commit 713d737b1ff73e76c6543198ce9299e1c83ac147)
(cherry picked from commit 5f469a2a1af8bff36fc3a5849a1500345febdba4)
Reviewed-on: https://gerrit.libreoffice.org/20586
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 6fac6b9cd02a3f26edd800b312ceca7a1c19ee52)
diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx
index d902a04..a3295c7 100644
--- a/lotuswordpro/source/filter/lwpframelayout.cxx
+++ b/lotuswordpro/source/filter/lwpframelayout.cxx
@@ -189,8 +189,10 @@ void LwpFrame::RegisterStyle(XFFrameStyle* pFrameStyle)
*/
void LwpFrame::XFConvert(XFContentContainer* pCont)
{
- //parse the frame which anchor to page
+ // parse the frame which anchor to page
LwpVirtualLayout* pParent = m_pLayout->GetParentLayout();
+ if (!pParent)
+ throw std::runtime_error("missing Parent Layout");
if(pParent->IsPage()&& pParent->GetParentLayout()->IsPage())
{
//for mirror page, problems exist if the parent layout is header or footer layout,
commit e7a4f50de186a2b90c067a0246e6b8cb13373e7d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 09:42:04 2015 +0000
guard against missing Foundry
Change-Id: I9147dc2bab312639a04d2e822cf99745d38d3b8d
(cherry picked from commit 22ee3194c930682ad8ac7f994084e877aa00d191)
Reviewed-on: https://gerrit.libreoffice.org/20574
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 479b1863a546c6022d058f27745b240dba9e1c05)
diff --git a/lotuswordpro/source/filter/lwppagelayout.cxx b/lotuswordpro/source/filter/lwppagelayout.cxx
index 3eef758..5604863 100644
--- a/lotuswordpro/source/filter/lwppagelayout.cxx
+++ b/lotuswordpro/source/filter/lwppagelayout.cxx
@@ -267,8 +267,8 @@ void LwpPageLayout::ParseBackColor(XFPageMaster* pm1)
void LwpPageLayout::ParseFootNoteSeparator(XFPageMaster * pm1)
{
//Get the footnoteoptions for the root document
- LwpDocument* pDocument = m_pFoundry->GetDocument();
- if(pDocument)
+ LwpDocument* pDocument = m_pFoundry ? m_pFoundry->GetDocument() : nullptr;
+ if (pDocument)
{
LwpObjectID* pFontnodeId = pDocument->GetValidFootnoteOpts();
commit 4e90b438937d18ea37b4d10c52fa0803893fd869
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 09:24:14 2015 +0000
protect against missing Table Layout
Change-Id: Ie7f4cd2b411eb678642ea859d261b1b672752d94
(cherry picked from commit 08fe513b89ea5102a3a233ee0bac472dc8e6b219)
Reviewed-on: https://gerrit.libreoffice.org/20567
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 78e612e265a4b7853ed7be9ed015cff6f64154e5)
diff --git a/lotuswordpro/source/filter/lwpcelllayout.cxx b/lotuswordpro/source/filter/lwpcelllayout.cxx
index 6b27d73..a587ec9 100644
--- a/lotuswordpro/source/filter/lwpcelllayout.cxx
+++ b/lotuswordpro/source/filter/lwpcelllayout.cxx
@@ -121,8 +121,9 @@ LwpTable * LwpCellLayout::GetTable()
*/
void LwpCellLayout::SetCellMap()
{
- // this function is called from LwpTableLayout, so it can't be NULL
- GetTableLayout()->SetWordProCellMap(crowid, ccolid, this);
+ LwpTableLayout * pTableLayout = GetTableLayout();
+ if (pTableLayout)
+ pTableLayout->SetWordProCellMap(crowid, ccolid, this);
}
/**
* @short Get actual width of this cell layout
commit 9069b159c9a17a9b33634038f5786211019586d5
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Dec 10 09:16:59 2015 +0000
guard against missing paragraph container
Change-Id: I6ac074c7fe2821983b4a056e28fc5379f7a93974
(cherry picked from commit 130eaf02de89c8996ff6e817a005993dcbd586e6)
Reviewed-on: https://gerrit.libreoffice.org/20564
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit be6ceb6dd7922c26faef12c866eeed03bc6581da)
diff --git a/lotuswordpro/source/filter/lwppara.hxx b/lotuswordpro/source/filter/lwppara.hxx
index d3d7bf6..57886ab 100644
--- a/lotuswordpro/source/filter/lwppara.hxx
+++ b/lotuswordpro/source/filter/lwppara.hxx
@@ -345,6 +345,8 @@ inline OUString LwpPara::GetBulletStyleName() const
}
inline void LwpPara::AddXFContent(XFContent* pCont)
{
+ if (!m_pXFContainer)
+ throw std::runtime_error("paragraph lacks container");
m_pXFContainer->Add(pCont);
}
inline void LwpPara::SetXFContainer(XFContentContainer* pCont)
commit 3ae07c41da0287054a042ccd16af7dfeca28186f
Author: David Tardon <dtardon at redhat.com>
Date: Thu Dec 10 10:04:50 2015 +0100
add missing #include <stdexcept>
Change-Id: I9cf72b27219489a5508786881ecd95e5820c71ac
(cherry picked from commit 1ff0a3880c48227656d2b4a823cd66a6d5c74af0)
Signed-off-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 7476205a8d05f1be5cc427ef884d94d86b32148c)
diff --git a/lotuswordpro/source/filter/lwpobj.hxx b/lotuswordpro/source/filter/lwpobj.hxx
index 99e1821..23ed6b2 100644
--- a/lotuswordpro/source/filter/lwpobj.hxx
+++ b/lotuswordpro/source/filter/lwpobj.hxx
@@ -67,6 +67,8 @@
#include <sal/config.h>
+#include <stdexcept>
+
#include <salhelper/simplereferenceobject.hxx>
#include "lwpheader.hxx"
commit fb48608278c98d3a369b74d883c885be153c5a29
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 21:32:21 2015 +0000
guard against infinite recursion on registering styles
(cherry picked from commit 66686e443b568ad5aab1b32b3f25eb73487cfef6)
Reviewed-on: https://gerrit.libreoffice.org/20554
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 282b1aa32c27a513eb2858ad6e7e534ef52c1b99)
Change-Id: Iabedfcce9d8ef21172e6bd0d654f3a258aae97e3
Reviewed-on: https://gerrit.libreoffice.org/20555
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit fdc0c739c0b4925485f6a8a2ece8113c895e4ca3)
diff --git a/lotuswordpro/source/filter/lwp9reader.cxx b/lotuswordpro/source/filter/lwp9reader.cxx
index f23c8fc..e74d02e 100644
--- a/lotuswordpro/source/filter/lwp9reader.cxx
+++ b/lotuswordpro/source/filter/lwp9reader.cxx
@@ -192,7 +192,7 @@ void Lwp9Reader::ParseDocument()
//Register Styles
RegisteArrowStyles();
- doc->RegisterStyle();
+ doc->DoRegisterStyle();
XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
pXFStyleManager->ToXml(m_pStream);
diff --git a/lotuswordpro/source/filter/lwpcelllayout.cxx b/lotuswordpro/source/filter/lwpcelllayout.cxx
index c5ac645..6b27d73 100644
--- a/lotuswordpro/source/filter/lwpcelllayout.cxx
+++ b/lotuswordpro/source/filter/lwpcelllayout.cxx
@@ -598,7 +598,7 @@ void LwpCellLayout::RegisterStyle()
if (pObj.is())
{
pObj->SetFoundry(m_pFoundry);
- pObj->RegisterStyle();
+ pObj->DoRegisterStyle();
}
//register child layout style
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx
index e3412fc..0a3597e 100644
--- a/lotuswordpro/source/filter/lwpdoc.cxx
+++ b/lotuswordpro/source/filter/lwpdoc.cxx
@@ -224,7 +224,7 @@ void LwpDocument::RegisterStyle()
rtl::Reference<LwpObject> pDocSock = GetSocket().obj();
if(pDocSock.is())
{
- pDocSock->RegisterStyle();
+ pDocSock->DoRegisterStyle();
}
}
/**
@@ -322,7 +322,7 @@ void LwpDocument::RegisterGraphicsStyles()
if(pGraphic.is())
{
pGraphic->SetFoundry(m_pFoundry);
- pGraphic->RegisterStyle();
+ pGraphic->DoRegisterStyle();
}
}
/**
@@ -619,7 +619,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
LwpDocument* pDivision = GetFirstDivision();
- while (pDivision)
+ while (pDivision && pDivision != this)
{
LwpDocument* pContentDivision = pDivision->GetFirstDivisionWithContentsThatIsNotOLE();
if(pContentDivision)
@@ -782,11 +782,11 @@ void LwpDocSock::RegisterStyle()
{
rtl::Reference<LwpObject> pDoc = GetNext().obj();
if(pDoc.is())
- pDoc->RegisterStyle();
+ pDoc->DoRegisterStyle();
pDoc = GetChildHead().obj();
if(pDoc.is())
- pDoc->RegisterStyle();
+ pDoc->DoRegisterStyle();
}
/**
* @descr parse contents of documents plugged
diff --git a/lotuswordpro/source/filter/lwpfnlayout.cxx b/lotuswordpro/source/filter/lwpfnlayout.cxx
index 86ddc5f..e02c597 100644
--- a/lotuswordpro/source/filter/lwpfnlayout.cxx
+++ b/lotuswordpro/source/filter/lwpfnlayout.cxx
@@ -164,7 +164,7 @@ void LwpFnCellLayout::RegisterStyle()
if (pObj.is())
{
pObj->SetFoundry(m_pFoundry);
- pObj->RegisterStyle();
+ pObj->DoRegisterStyle();
}
}
@@ -241,7 +241,7 @@ void LwpEnSuperTableLayout::RegisterStyle()
if (pTableLayout != NULL)
{
pTableLayout->SetFoundry(m_pFoundry);
- pTableLayout->RegisterStyle();
+ pTableLayout->DoRegisterStyle();
}
}
diff --git a/lotuswordpro/source/filter/lwpfootnote.cxx b/lotuswordpro/source/filter/lwpfootnote.cxx
index 5c64d00..86c69ff 100644
--- a/lotuswordpro/source/filter/lwpfootnote.cxx
+++ b/lotuswordpro/source/filter/lwpfootnote.cxx
@@ -181,7 +181,7 @@ void LwpFootnote::RegisterStyle()
if(pContent)
{
pContent->SetFoundry(m_pFoundry);
- pContent->RegisterStyle();
+ pContent->DoRegisterStyle();
}
}
}
diff --git a/lotuswordpro/source/filter/lwpfoundry.cxx b/lotuswordpro/source/filter/lwpfoundry.cxx
index d343520..3e2609f 100644
--- a/lotuswordpro/source/filter/lwpfoundry.cxx
+++ b/lotuswordpro/source/filter/lwpfoundry.cxx
@@ -202,7 +202,7 @@ void LwpFoundry::RegisterAllLayouts()
if( pStyle.is() )
{
pStyle->SetFoundry(this);
- pStyle->RegisterStyle();
+ pStyle->DoRegisterStyle();
}
//register content page layout list: Layout
@@ -210,7 +210,7 @@ void LwpFoundry::RegisterAllLayouts()
if( pStyle.is() )
{
pStyle->SetFoundry(this);
- pStyle->RegisterStyle();
+ pStyle->DoRegisterStyle();
}
//Register page style layout list: PageStyle, such as "Default Page"
@@ -218,7 +218,7 @@ void LwpFoundry::RegisterAllLayouts()
if( pStyle.is() )
{
pStyle->SetFoundry(this);
- pStyle->RegisterStyle();
+ pStyle->DoRegisterStyle();
}
//Register FrameStyle
@@ -226,7 +226,7 @@ void LwpFoundry::RegisterAllLayouts()
if( pStyle.is() )
{
pStyle->SetFoundry(this);
- pStyle->RegisterStyle();
+ pStyle->DoRegisterStyle();
}
}
diff --git a/lotuswordpro/source/filter/lwpframelayout.cxx b/lotuswordpro/source/filter/lwpframelayout.cxx
index 61325da..d902a04 100644
--- a/lotuswordpro/source/filter/lwpframelayout.cxx
+++ b/lotuswordpro/source/filter/lwpframelayout.cxx
@@ -867,7 +867,7 @@ void LwpFrameLayout::RegisterStyle()
if (content.is())
{
content->SetFoundry(m_pFoundry);
- content->RegisterStyle();
+ content->DoRegisterStyle();
}
//register child frame style
diff --git a/lotuswordpro/source/filter/lwpfribframe.cxx b/lotuswordpro/source/filter/lwpfribframe.cxx
index fc16cfd..9f0161e 100644
--- a/lotuswordpro/source/filter/lwpfribframe.cxx
+++ b/lotuswordpro/source/filter/lwpfribframe.cxx
@@ -108,7 +108,7 @@ void LwpFribFrame::RegisterStyle(LwpFoundry* pFoundry)
if (!pLayout)
return;
pLayout->SetFoundry(pFoundry);
- pLayout->RegisterStyle();
+ pLayout->DoRegisterStyle();
//register next frib text style
sal_uInt8 nType = pLayout->GetRelativeType();
diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx
index e4bb189..8d0cce5 100644
--- a/lotuswordpro/source/filter/lwplayout.cxx
+++ b/lotuswordpro/source/filter/lwplayout.cxx
@@ -511,7 +511,7 @@ void LwpHeadLayout::RegisterStyle()
OSL_FAIL("Layout points to itself");
break;
}
- pLayout->RegisterStyle();
+ pLayout->DoRegisterStyle();
}
LwpVirtualLayout *pNext = dynamic_cast<LwpVirtualLayout*>(pLayout->GetNext().obj().get());
if (pNext == pLayout)
diff --git a/lotuswordpro/source/filter/lwpnotes.cxx b/lotuswordpro/source/filter/lwpnotes.cxx
index 02a4de5..dd08b17 100644
--- a/lotuswordpro/source/filter/lwpnotes.cxx
+++ b/lotuswordpro/source/filter/lwpnotes.cxx
@@ -92,7 +92,7 @@ void LwpFribNote::RegisterNewStyle()
LwpFrib::RegisterStyle(m_pPara->GetFoundry());
//register foonote style
pLayout->SetFoundry(m_pPara->GetFoundry());
- pLayout->RegisterStyle();
+ pLayout->DoRegisterStyle();
}
}
@@ -172,7 +172,7 @@ void LwpNoteLayout::RegisterStyle()
if(pTextLayout)
{
pTextLayout->SetFoundry(GetFoundry());
- pTextLayout->RegisterStyle();
+ pTextLayout->DoRegisterStyle();
}
}
@@ -284,7 +284,7 @@ void LwpNoteTextLayout::RegisterStyle()
if(pContent.is())
{
pContent->SetFoundry(GetFoundry());
- pContent->RegisterStyle();
+ pContent->DoRegisterStyle();
}
}
diff --git a/lotuswordpro/source/filter/lwpobj.cxx b/lotuswordpro/source/filter/lwpobj.cxx
index 7e15b62..010b60e 100644
--- a/lotuswordpro/source/filter/lwpobj.cxx
+++ b/lotuswordpro/source/filter/lwpobj.cxx
@@ -64,7 +64,7 @@
* @descr construct lwpobject from stream
*/
LwpObject::LwpObject(LwpObjectHeader objHdr, LwpSvStream* pStrm)
- : m_ObjHdr(objHdr), m_pObjStrm(NULL), m_pFoundry(NULL), m_pStrm(pStrm)
+ : m_ObjHdr(objHdr), m_pObjStrm(nullptr), m_pFoundry(nullptr), m_pStrm(pStrm), m_bRegisteringStyle(false)
{
m_pObjStrm = new LwpObjectStream(pStrm, m_ObjHdr.IsCompressed(),
static_cast<sal_uInt16>(m_ObjHdr.GetSize()) );
diff --git a/lotuswordpro/source/filter/lwpobj.hxx b/lotuswordpro/source/filter/lwpobj.hxx
index 942e044..99e1821 100644
--- a/lotuswordpro/source/filter/lwpobj.hxx
+++ b/lotuswordpro/source/filter/lwpobj.hxx
@@ -92,11 +92,22 @@ protected:
LwpObjectStream* m_pObjStrm;
LwpFoundry* m_pFoundry;
LwpSvStream* m_pStrm;
+ bool m_bRegisteringStyle;
protected:
virtual void Read();
+ virtual void RegisterStyle();
public:
void QuickRead();
- virtual void RegisterStyle();
+ //calls RegisterStyle but bails if DoRegisterStyle is called
+ //on the same object recursively
+ void DoRegisterStyle()
+ {
+ if (m_bRegisteringStyle)
+ throw std::runtime_error("recursion in styles");
+ m_bRegisteringStyle = true;
+ RegisterStyle();
+ m_bRegisteringStyle = false;
+ }
virtual void Parse(IXFStream* pOutputStream);
virtual void XFConvert(XFContentContainer* pCont);
diff --git a/lotuswordpro/source/filter/lwppagelayout.cxx b/lotuswordpro/source/filter/lwppagelayout.cxx
index 08b7615..3eef758 100644
--- a/lotuswordpro/source/filter/lwppagelayout.cxx
+++ b/lotuswordpro/source/filter/lwppagelayout.cxx
@@ -884,7 +884,7 @@ void LwpHeaderLayout::RegisterStyle(XFMasterPage* mp1)
//Call the RegisterStyle first to register the styles in header paras, and then XFConvert()
pStory->SetFoundry(m_pFoundry);
- pStory->RegisterStyle();
+ pStory->DoRegisterStyle();
//, 06/27/2005
//register child layout style for framelayout,
RegisterChildStyle();
@@ -1037,8 +1037,7 @@ void LwpFooterLayout::RegisterStyle(XFMasterPage* mp1)
pChangeMgr->SetHeadFootFribMap(true);
pStory->SetFoundry(m_pFoundry);
- pStory->RegisterStyle();
- //, 06/27/2005
+ pStory->DoRegisterStyle();
//register child layout style for framelayout,
RegisterChildStyle();
//End
diff --git a/lotuswordpro/source/filter/lwpvpointer.cxx b/lotuswordpro/source/filter/lwpvpointer.cxx
index 796e0d4..9d1a7dc 100644
--- a/lotuswordpro/source/filter/lwpvpointer.cxx
+++ b/lotuswordpro/source/filter/lwpvpointer.cxx
@@ -77,7 +77,7 @@ void LwpVersionedPointer::RegisterStyle()
if( pObj.is() )
{
pObj->SetFoundry(m_pFoundry);
- pObj->RegisterStyle();
+ pObj->DoRegisterStyle();
}
}
commit b45d0523981c7b51dbc1faafe3d705b6f3c58757
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 16:58:16 2015 +0000
bounds check GetNameByIndex like Override
Change-Id: If83e255da1683779458556a3ab1af4f00b19265b
(cherry picked from commit 8c67b1b51f21643036c5f5371a6af0a4558e7da2)
Reviewed-on: https://gerrit.libreoffice.org/20547
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 59ced109fccf0acbaba357a96243972a5f400902)
diff --git a/lotuswordpro/source/filter/lwpfont.cxx b/lotuswordpro/source/filter/lwpfont.cxx
index 3ee7e1b..4307d29 100644
--- a/lotuswordpro/source/filter/lwpfont.cxx
+++ b/lotuswordpro/source/filter/lwpfont.cxx
@@ -399,8 +399,13 @@ void LwpFontNameManager::Override(sal_uInt16 index, rtl::Reference<XFFont> co
if(m_pFontNames[index-1].IsAltFaceNameOverridden())
pFont->SetFontNameAsia(m_FontTbl.GetFaceName(m_pFontNames[index-1].GetAltFaceID()));
}
+
OUString LwpFontNameManager::GetNameByIndex(sal_uInt16 index)
+ //index: start from 1
{
+ if (index > m_nCount || index < 1)
+ return OUString();
+
sal_uInt16 nameindex = m_pFontNames[index-1].GetFaceID();
return (m_FontTbl.GetFaceName(nameindex));
}
commit 1772ef53103ed9284ee65f72d57c4aa0fabe6305
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 16:48:29 2015 +0000
guard against missing alignment property
(cherry picked from commit 7e341379ecec218c0ff2ff0e8db9f14468b125f6)
Reviewed-on: https://gerrit.libreoffice.org/20543
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 3b9e2bb22e782d073d8e67ae975ebb8ca5eea552)
Change-Id: I1d4825c2136e516baf759f4b2c40c911547b93d7
Reviewed-on: https://gerrit.libreoffice.org/20544
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 3592f0020b3136b17f6b8289f433462563a46759)
diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx
index c2f2f20..ed03231 100644
--- a/lotuswordpro/source/filter/lwppara.cxx
+++ b/lotuswordpro/source/filter/lwppara.cxx
@@ -386,18 +386,22 @@ void LwpPara::RegisterStyle()
{
case PP_LOCAL_ALIGN:
{
- if (!rParaStyle.GetAlignment())
- OverrideAlignment(NULL,static_cast<LwpParaAlignProperty*>(pProps)->GetAlignment(),pOverStyle);
- else
+ LwpAlignmentOverride *pAlignment = static_cast<LwpParaAlignProperty*>(pProps)->GetAlignment();
+ if (pAlignment)
{
- boost::scoped_ptr<LwpAlignmentOverride> const pAlign(
- rParaStyle.GetAlignment()->clone());
- OverrideAlignment(pAlign.get(),
- static_cast<LwpParaAlignProperty*>(pProps)->GetAlignment(),
- pOverStyle);
+ if (!rParaStyle.GetAlignment())
+ OverrideAlignment(nullptr, pAlignment, pOverStyle);
+ else
+ {
+ std::unique_ptr<LwpAlignmentOverride> const pAlign(
+ rParaStyle.GetAlignment()->clone());
+ OverrideAlignment(pAlign.get(),
+ pAlignment,
+ pOverStyle);
+ }
}
- }
break;
+ }
case PP_LOCAL_INDENT:
{
noIndent = false;
commit ef07e395e489648536af79c69acdd9be72b0f877
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 16:41:26 2015 +0000
guard against missing SuperTable
Change-Id: Ic7cc6c807905e0c4ffbf2a3f009b27be6100cdf0
(cherry picked from commit 0cde3ca230364492aa6b7f634b97178164268728)
Reviewed-on: https://gerrit.libreoffice.org/20541
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit a57ceea18a1632fb18fa57a7bb101bd3ad382415)
diff --git a/lotuswordpro/source/filter/lwpfribtable.cxx b/lotuswordpro/source/filter/lwpfribtable.cxx
index 4adb3ac..86c70ea 100644
--- a/lotuswordpro/source/filter/lwpfribtable.cxx
+++ b/lotuswordpro/source/filter/lwpfribtable.cxx
@@ -78,7 +78,9 @@ LwpSuperTableLayout* LwpFribTable::GetSuperTable()
void LwpFribTable::RegisterNewStyle()
{
- GetSuperTable()->RegisterNewStyle();
+ LwpSuperTableLayout* pSuper = GetSuperTable();
+ if (pSuper)
+ pSuper->RegisterNewStyle();
XFParaStyle* pOldStyle = m_pPara->GetXFParaStyle();
if(HasNextFrib())
{
commit a2c8f6c31257423de0e3dc5e0fe4049bd6d59d76
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 16:31:40 2015 +0000
guard against missing paragraph story
Change-Id: I217c0aedca4eadc347c103899d96c70cf9606038
(cherry picked from commit dbc830aecc722d34971d773470da478ef4c38714)
Reviewed-on: https://gerrit.libreoffice.org/20539
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit d4b850fe8bc45bfb018f0a8750e09a436c49d7df)
diff --git a/lotuswordpro/source/filter/lwpfribsection.cxx b/lotuswordpro/source/filter/lwpfribsection.cxx
index b870488..e24faf8 100644
--- a/lotuswordpro/source/filter/lwpfribsection.cxx
+++ b/lotuswordpro/source/filter/lwpfribsection.cxx
@@ -164,9 +164,8 @@ void LwpFribSection::ParseSection()
m_pMasterPage->ParseSection(this);
}
}
- else
+ else if (LwpStory* pStory = static_cast<LwpStory*>(m_pPara->GetStoryID().obj().get()))
{
- LwpStory* pStory = static_cast<LwpStory*> ( m_pPara->GetStoryID().obj().get() );
rtl::Reference<LwpObject> xObj(m_Section.obj());
if (xObj.is() && xObj->GetTag() == VO_INDEXSECTION)
{
commit cb2b390ad9e5a96a3b6118a4b263f420d428f7f1
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 16:21:38 2015 +0000
guard against missing indent property
(cherry picked from commit ae94fc5b28105c920b2e9d336f463b27cae5b0e1)
Reviewed-on: https://gerrit.libreoffice.org/20535
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit d9f6f9063d34f29eb44d82159c411646dc19c83f)
Change-Id: I2d3369aed4b242acc936a71ee9be573c1ebc7a8f
Reviewed-on: https://gerrit.libreoffice.org/20536
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 9498d2023543eba23d047b91ea25d63af41f614f)
diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx
index 7cebb58..c2f2f20 100644
--- a/lotuswordpro/source/filter/lwppara.cxx
+++ b/lotuswordpro/source/filter/lwppara.cxx
@@ -401,15 +401,16 @@ void LwpPara::RegisterStyle()
case PP_LOCAL_INDENT:
{
noIndent = false;
- if (!rParaStyle.GetIndent())
- OverrideIndent(NULL,static_cast<LwpParaIndentProperty*>(pProps)->GetIndent(),pOverStyle);
-
- else
+ LwpIndentOverride *pIndent = static_cast<LwpParaIndentProperty*>(pProps)->GetIndent();
+ if (pIndent)
{
- OverrideIndent(m_pIndentOverride,static_cast<LwpParaIndentProperty*>(pProps)->GetIndent(),pOverStyle);
+ if (!rParaStyle.GetIndent())
+ OverrideIndent(nullptr, pIndent, pOverStyle);
+ else
+ OverrideIndent(m_pIndentOverride, pIndent, pOverStyle);
}
- }
break;
+ }
case PP_LOCAL_SPACING:
{
noSpacing = false;
commit b3d4db8675f25b9361bc161e14f030e130b9c0f3
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 14:59:17 2015 +0000
guard against styles based on themselves
which leads to stack exhaustion when queries,
make m_BasedOnStyle private and replace it with
a call to GetBasedOnStyle which checks that
the base style is not itself
(cherry picked from commit da5e8ba393b8522a8f7501ebeb1e9a98d544a7ba)
Reviewed-on: https://gerrit.libreoffice.org/20531
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit 7e5b93bf127aeb83e4ab22e0701b731ec1934253)
Change-Id: I093546793755f8a3a6e8a3c23fb8565ad27b75da
Reviewed-on: https://gerrit.libreoffice.org/20532
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 1ff36e1435dfb5e40ce4b651557b89c1f2c176eb)
diff --git a/lotuswordpro/source/filter/lwpcelllayout.cxx b/lotuswordpro/source/filter/lwpcelllayout.cxx
index 39717cd..c5ac645 100644
--- a/lotuswordpro/source/filter/lwpcelllayout.cxx
+++ b/lotuswordpro/source/filter/lwpcelllayout.cxx
@@ -269,7 +269,7 @@ void LwpCellLayout::ApplyFmtStyle(XFCellStyle *pCellStyle)
if (!pLayoutNumerics)
{
// if current layout doesn't have format, go to based on layout
- LwpCellLayout* pCellLayout = dynamic_cast<LwpCellLayout*>(m_BasedOnStyle.obj().get());
+ LwpCellLayout* pCellLayout = dynamic_cast<LwpCellLayout*>(GetBasedOnStyle().get());
if (pCellLayout)
{
pLayoutNumerics = dynamic_cast<LwpLayoutNumerics*>(pCellLayout->GetNumericsObject().obj().get());
@@ -656,7 +656,7 @@ void LwpCellLayout::ApplyProtect(XFCell * pCell, LwpObjectID aTableID)
else
{
// judge base on
- LwpCellLayout * pBase = dynamic_cast<LwpCellLayout *>(m_BasedOnStyle.obj().get());
+ LwpCellLayout * pBase = dynamic_cast<LwpCellLayout *>(GetBasedOnStyle().get());
if (pBase && pBase->IsProtected())
{
bProtected = true;
diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx
index 3863458..e4bb189 100644
--- a/lotuswordpro/source/filter/lwplayout.cxx
+++ b/lotuswordpro/source/filter/lwplayout.cxx
@@ -648,6 +648,17 @@ void LwpMiddleLayout::Read()
//end
}
+rtl::Reference<LwpObject> LwpMiddleLayout::GetBasedOnStyle()
+{
+ rtl::Reference<LwpObject> xRet(m_BasedOnStyle.obj());
+ if (xRet.get() == this)
+ {
+ SAL_WARN("lwp", "style based on itself");
+ return rtl::Reference<LwpObject>();
+ }
+ return xRet;
+}
+
#include "lwplaypiece.hxx"
/**
@@ -660,10 +671,9 @@ LwpLayoutGeometry* LwpMiddleLayout::GetGeometry()
{
return ( dynamic_cast<LwpLayoutGeometry*> (m_LayGeometry.obj().get()) );
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetGeometry() : NULL;
+ return pLay->GetGeometry();
}
return NULL;
}
@@ -708,11 +718,9 @@ bool LwpMiddleLayout::MarginsSameAsParent()
{
return LwpVirtualLayout::MarginsSameAsParent();
}
- if(!m_BasedOnStyle.IsNull())
+ if (LwpVirtualLayout* pLay = dynamic_cast<LwpVirtualLayout*> (GetBasedOnStyle().get()))
{
- LwpVirtualLayout* pLay = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
- if (pLay)
- pLay->MarginsSameAsParent();
+ pLay->MarginsSameAsParent();
}
return LwpVirtualLayout::MarginsSameAsParent();
@@ -747,7 +755,7 @@ double LwpMiddleLayout::GetMarginsValue(const sal_uInt8 &nWhichSide)
return fValue;
}
}
- LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
+ LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*>(GetBasedOnStyle().get());
if(pStyle)
{
fValue = pStyle->GetMarginsValue(nWhichSide);
@@ -773,7 +781,7 @@ double LwpMiddleLayout::GetExtMarginsValue(const sal_uInt8 &nWhichSide)
return fValue;
}
}
- LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
+ LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*>(GetBasedOnStyle().get());
if(pStyle)
{
fValue = pStyle->GetExtMarginsValue(nWhichSide);
@@ -794,10 +802,9 @@ LwpBorderStuff* LwpMiddleLayout::GetBorderStuff()
LwpLayoutBorder* pLayoutBorder = dynamic_cast<LwpLayoutBorder*>(m_LayBorderStuff.obj().get());
return pLayoutBorder ? &pLayoutBorder->GetBorderStuff() : NULL;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetBorderStuff() : NULL;
+ return pLay->GetBorderStuff();
}
return NULL;
}
@@ -815,10 +822,9 @@ LwpBackgroundStuff* LwpMiddleLayout::GetBackgroundStuff()
LwpLayoutBackground* pLayoutBackground = dynamic_cast<LwpLayoutBackground*>(m_LayBackgroundStuff.obj().get());
return pLayoutBackground ? &pLayoutBackground->GetBackgoudStuff() : NULL;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetBackgroundStuff() : NULL;
+ return pLay->GetBackgroundStuff();
}
return NULL;
}
@@ -925,10 +931,9 @@ LwpTabOverride* LwpMiddleLayout::GetTabOverride()
}
return NULL;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( GetBasedOnStyle().get() ))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetTabOverride() : NULL;
+ return pLay->GetTabOverride();
}
return NULL;
}
@@ -943,8 +948,9 @@ sal_uInt16 LwpMiddleLayout::GetScaleMode()
{
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return GetLayoutScale()->GetScaleMode();
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScaleMode();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScaleMode();
else
return (LwpLayoutScale::FIT_IN_FRAME | LwpLayoutScale::MAINTAIN_ASPECT_RATIO);
}
@@ -954,8 +960,9 @@ sal_uInt16 LwpMiddleLayout::GetScaleTile()
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return (GetLayoutScale()->GetPlacement() & LwpLayoutScale::TILED)
? 1 : 0;
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScaleTile();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScaleTile();
else
return 0;
}
@@ -965,8 +972,9 @@ sal_uInt16 LwpMiddleLayout::GetScaleCenter()
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return (GetLayoutScale()->GetPlacement() & LwpLayoutScale::CENTERED)
? 1 : 0;
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScaleCenter();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScaleCenter();
else
return 0;
}
@@ -975,8 +983,9 @@ sal_uInt32 LwpMiddleLayout::GetScalePercentage()
{
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return GetLayoutScale()->GetScalePercentage()/10;//m_nScalePercentage 1000 = 100%
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScalePercentage();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScalePercentage();
else
return 100;
}
@@ -985,8 +994,9 @@ double LwpMiddleLayout::GetScaleWidth()
{
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return LwpTools::ConvertFromUnits(GetLayoutScale()->GetScaleWidth());
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScaleWidth();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScaleWidth();
else
return 0;
}
@@ -995,8 +1005,9 @@ double LwpMiddleLayout::GetScaleHeight()
{
if ((m_nOverrideFlag & OVER_SCALING) && m_LayScale.obj().is())
return LwpTools::ConvertFromUnits(GetLayoutScale()->GetScaleHeight());
- else if (m_BasedOnStyle.obj().is())
- return dynamic_cast<LwpMiddleLayout*>(m_BasedOnStyle.obj().get())->GetScaleHeight();
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
+ return dynamic_cast<LwpMiddleLayout*>(xBase.get())->GetScaleHeight();
else
return 0;
}
@@ -1051,9 +1062,10 @@ bool LwpMiddleLayout::IsSizeRightToContainer()
<< SHIFT_RIGHT))
== ((LAY_USEDIRECTION | LAY_TOCONTAINER | LAY_AUTOSIZE) << SHIFT_RIGHT);
}
- else if (m_BasedOnStyle.obj().is())
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
{
- LwpMiddleLayout * pLayout = dynamic_cast<LwpMiddleLayout *>(m_BasedOnStyle.obj().get());
+ LwpMiddleLayout * pLayout = dynamic_cast<LwpMiddleLayout *>(xBase.get());
return pLayout && pLayout->IsSizeRightToContainer();
}
else
@@ -1070,9 +1082,10 @@ bool LwpMiddleLayout::IsSizeRightToContent()
<< SHIFT_RIGHT))
== ((LAY_USEDIRECTION | LAY_AUTOSIZE) << SHIFT_RIGHT);
}
- else if (m_BasedOnStyle.obj().is())
+ rtl::Reference<LwpObject> xBase(GetBasedOnStyle());
+ if (xBase.is())
{
- LwpMiddleLayout * pLayout = dynamic_cast<LwpMiddleLayout *>(m_BasedOnStyle.obj().get());
+ LwpMiddleLayout * pLayout = dynamic_cast<LwpMiddleLayout *>(xBase.get());
return pLayout && pLayout->IsSizeRightToContent();
}
else
@@ -1162,10 +1175,9 @@ bool LwpMiddleLayout::IsAutoGrow()
((LAY_AUTOGROW << SHIFT_UP) | (LAY_AUTOGROW << SHIFT_DOWN) |
(LAY_AUTOGROW << SHIFT_RIGHT) | (LAY_AUTOGROW << SHIFT_LEFT))) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay && pLay->IsAutoGrow();
+ return pLay->IsAutoGrow();
}
return LwpVirtualLayout::IsAutoGrow();
}
@@ -1180,10 +1192,9 @@ bool LwpMiddleLayout::IsAutoGrowDown()
{
return (m_nDirection & (LAY_AUTOGROW << SHIFT_DOWN)) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay && pLay->IsAutoGrowDown();
+ return pLay->IsAutoGrowDown();
}
return LwpVirtualLayout::IsAutoGrowDown();
}
@@ -1198,10 +1209,9 @@ bool LwpMiddleLayout::IsAutoGrowUp()
{
return (m_nDirection & (LAY_AUTOGROW << SHIFT_UP)) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay && pLay->IsAutoGrowUp();
+ return pLay->IsAutoGrowUp();
}
return LwpVirtualLayout::IsAutoGrowUp();
}
@@ -1216,11 +1226,9 @@ bool LwpMiddleLayout::IsAutoGrowLeft()
{
return (m_nDirection & (LAY_AUTOGROW << SHIFT_LEFT)) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->IsAutoGrowLeft();
+ return pLay->IsAutoGrowLeft();
}
return LwpVirtualLayout::IsAutoGrowLeft();
}
@@ -1235,10 +1243,9 @@ bool LwpMiddleLayout::IsAutoGrowRight()
{
return (m_nDirection & (LAY_AUTOGROW << SHIFT_RIGHT)) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> (GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay && pLay->IsAutoGrowRight();
+ return pLay->IsAutoGrowRight();
}
return LwpVirtualLayout::IsAutoGrowRight();
}
@@ -1256,11 +1263,9 @@ sal_uInt8 LwpMiddleLayout::GetContentOrientation()
if (pLayGeometry)
return pLayGeometry->GetContentOrientation();
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*>(GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->GetContentOrientation();
+ return pLay->GetContentOrientation();
}
return LwpVirtualLayout::GetContentOrientation();
}
@@ -1291,11 +1296,9 @@ bool LwpMiddleLayout::HonorProtection()
}
}
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> (GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->HonorProtection();
+ return pLay->HonorProtection();
}
return LwpVirtualLayout::HonorProtection();
@@ -1312,10 +1315,9 @@ bool LwpMiddleLayout::IsProtected()
{
bProtected = (m_nAttributes & STYLE_PROTECTED)!=0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> (GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- bProtected = pLay && pLay->IsProtected();
+ bProtected = pLay->IsProtected();
}
else
bProtected = LwpVirtualLayout::IsProtected();
@@ -1438,10 +1440,9 @@ bool LwpMiddleLayout::GetUsePrinterSettings()
{
return (m_nAttributes3 & STYLE3_USEPRINTERSETTINGS) != 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> (GetBasedOnStyle().get()))
{
- LwpMiddleLayout* pLay = dynamic_cast<LwpMiddleLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay && pLay->GetUsePrinterSettings();
+ return pLay->GetUsePrinterSettings();
}
return false;
}
@@ -1518,8 +1519,8 @@ sal_uInt16 LwpLayout::GetNumCols()
}
}
- LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
- if(pStyle)
+ LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (GetBasedOnStyle().get());
+ if (pStyle)
{
return pStyle->GetNumCols();
}
@@ -1543,8 +1544,8 @@ double LwpLayout::GetColWidth(sal_uInt16 nIndex)
}
}
- LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
- if(pStyle)
+ LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*>(GetBasedOnStyle().get());
+ if (pStyle)
{
return pStyle->GetColWidth(nIndex);
}
@@ -1568,8 +1569,8 @@ double LwpLayout::GetColGap(sal_uInt16 nIndex)
}
}
- LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*> (m_BasedOnStyle.obj().get());
- if(pStyle)
+ LwpVirtualLayout* pStyle = dynamic_cast<LwpVirtualLayout*>(GetBasedOnStyle().get());
+ if (pStyle)
{
return pStyle->GetColGap(nIndex);
}
@@ -1713,10 +1714,9 @@ sal_uInt16 LwpLayout::GetUsePage()
else
return 0;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetUsePage() : 0;
+ return pLay->GetUsePage();
}
return 0;
}
@@ -1731,10 +1731,9 @@ LwpUseWhen* LwpLayout::VirtualGetUseWhen()
{
return m_pUseWhen;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->VirtualGetUseWhen() : NULL;
+ return pLay->VirtualGetUseWhen();
}
return LwpVirtualLayout::VirtualGetUseWhen();
}
@@ -1753,11 +1752,9 @@ bool LwpLayout::IsUseOnAllPages()
else
return false;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->IsUseOnAllPages();
+ return pLay->IsUseOnAllPages();
}
return LwpVirtualLayout::IsUseOnAllPages();
}
@@ -1776,11 +1773,9 @@ bool LwpLayout::IsUseOnAllEvenPages()
else
return false;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->IsUseOnAllEvenPages();
+ return pLay->IsUseOnAllEvenPages();
}
return LwpVirtualLayout::IsUseOnAllEvenPages();
}
@@ -1799,11 +1794,9 @@ bool LwpLayout::IsUseOnAllOddPages()
else
return false;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->IsUseOnAllOddPages();
+ return pLay->IsUseOnAllOddPages();
}
return LwpVirtualLayout::IsUseOnAllOddPages();
}
@@ -1822,11 +1815,9 @@ bool LwpLayout::IsUseOnPage()
else
return false;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->IsUseOnPage();
+ return pLay->IsUseOnPage();
}
return LwpVirtualLayout::IsUseOnPage();
}
@@ -1844,10 +1835,9 @@ LwpShadow* LwpLayout::GetShadow()
LwpLayoutShadow* pLayoutShadow = dynamic_cast<LwpLayoutShadow*>(m_LayShadow.obj().get());
return pLayoutShadow ? &pLayoutShadow->GetShadow() : NULL;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpLayout* pLay = dynamic_cast<LwpLayout*>(GetBasedOnStyle().get()))
{
- LwpLayout* pLay = dynamic_cast<LwpLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetShadow() : NULL;
+ return pLay->GetShadow();
}
return NULL;
}
@@ -1991,11 +1981,9 @@ sal_uInt8 LwpPlacableLayout::GetWrapType()
{
return m_nWrapType;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*>(GetBasedOnStyle().get()))
{
- LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*> ( m_BasedOnStyle.obj().get() );
- if (pLay)
- return pLay->GetWrapType();
+ return pLay->GetWrapType();
}
return LAY_WRAP_AROUND;
}
@@ -2014,10 +2002,9 @@ LwpLayoutRelativity* LwpPlacableLayout::GetRelativityPiece()
return dynamic_cast<LwpLayoutRelativity*>(m_LayRelativity.obj().get());
}
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*>(GetBasedOnStyle().get()))
{
- LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetRelativityPiece() : NULL;
+ return pLay->GetRelativityPiece();
}
return NULL;
}
@@ -2056,10 +2043,9 @@ sal_Int32 LwpPlacableLayout::GetBaseLineOffset()
{
return m_nBaseLineOffset;
}
- else if( !m_BasedOnStyle.IsNull() )
+ else if (LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*>(GetBasedOnStyle().get()))
{
- LwpPlacableLayout* pLay = dynamic_cast<LwpPlacableLayout*> ( m_BasedOnStyle.obj().get() );
- return pLay ? pLay->GetBaseLineOffset() : 0;
+ return pLay->GetBaseLineOffset();
}
return 0;
diff --git a/lotuswordpro/source/filter/lwplayout.hxx b/lotuswordpro/source/filter/lwplayout.hxx
index b213bfc..5e9b42e 100644
--- a/lotuswordpro/source/filter/lwplayout.hxx
+++ b/lotuswordpro/source/filter/lwplayout.hxx
@@ -328,6 +328,8 @@ public:
protected:
void Read() SAL_OVERRIDE;
+private:
+ LwpObjectID m_BasedOnStyle;
protected:
enum
{
@@ -336,8 +338,7 @@ protected:
};
LwpObjectID m_Content;
- LwpObjectID m_BasedOnStyle;
-
+ rtl::Reference<LwpObject> GetBasedOnStyle();
LwpObjectID m_TabPiece;
LwpLayoutStyle* m_pStyleStuff;
LwpLayoutMisc* m_pMiscStuff;
diff --git a/lotuswordpro/source/filter/lwpobjid.cxx b/lotuswordpro/source/filter/lwpobjid.cxx
index 0962f37..2fd57e9 100644
--- a/lotuswordpro/source/filter/lwpobjid.cxx
+++ b/lotuswordpro/source/filter/lwpobjid.cxx
@@ -187,12 +187,12 @@ sal_uInt32 LwpObjectID::DiskSizeIndexed() const
*/
rtl::Reference<LwpObject> LwpObjectID::obj(VO_TYPE tag) const
{
- LwpGlobalMgr* pGlobal = LwpGlobalMgr::GetInstance();
- LwpObjectFactory* pObjMgr = pGlobal->GetLwpObjFactory();
- if(IsNull())
+ if (IsNull())
{
return NULL;
}
+ LwpGlobalMgr* pGlobal = LwpGlobalMgr::GetInstance();
+ LwpObjectFactory* pObjMgr = pGlobal->GetLwpObjFactory();
rtl::Reference<LwpObject> pObj = pObjMgr->QueryObject(*this);
if( tag!=VO_INVALID && (pObj.is()) )
{
commit 54b97c6984fc6e93d9966ea305a158be4a3c6dd3
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 13:30:02 2015 +0000
guard against no default text style
Change-Id: I7416d709de79ae88cf4a9546d8adfecec9935238
(cherry picked from commit 80297dd0f21bfeaa9bae09cacfa29ab2eee64c09)
Reviewed-on: https://gerrit.libreoffice.org/20529
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit da794ce092673fcfd1311cb9a218098a400682e3)
diff --git a/lotuswordpro/source/filter/lwptoc.cxx b/lotuswordpro/source/filter/lwptoc.cxx
index 16f8737..dfb4178 100644
--- a/lotuswordpro/source/filter/lwptoc.cxx
+++ b/lotuswordpro/source/filter/lwptoc.cxx
@@ -130,7 +130,8 @@ void LwpTocSuperLayout::RegisterStyle()
LwpSuperTableLayout::RegisterStyle();
// Get font info of default text style and set into tab style
- XFParaStyle* pBaseStyle = static_cast<XFParaStyle*>(m_pFoundry->GetStyleManager()->GetStyle(*m_pFoundry->GetDefaultTextStyle()));
+ const LwpObjectID *pDefaultTextStyle = m_pFoundry->GetDefaultTextStyle();
+ XFParaStyle* pBaseStyle = pDefaultTextStyle ? static_cast<XFParaStyle*>(m_pFoundry->GetStyleManager()->GetStyle(*pDefaultTextStyle)) : nullptr;
XFTextStyle*pTextStyle = new XFTextStyle;
if (pBaseStyle)
pTextStyle->SetFont(pBaseStyle->GetFont()); // who delete this font?????
commit 410bd50600a1d087b39bfe5be5dbc3da48273408
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 13:10:27 2015 +0000
guard against missing paragraph Story
Change-Id: Iae617e9731dbdcedf8aa6bf02977911dce60bdd0
(cherry picked from commit 9d2a1c48b4a39967bc21776b471f1a4eca735cb6)
Reviewed-on: https://gerrit.libreoffice.org/20526
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 7a721b415564ae0b0c203bcaf9a24d03a4238a44)
diff --git a/lotuswordpro/source/filter/lwpfribptr.cxx b/lotuswordpro/source/filter/lwpfribptr.cxx
index 4f3211a..79486a2 100644
--- a/lotuswordpro/source/filter/lwpfribptr.cxx
+++ b/lotuswordpro/source/filter/lwpfribptr.cxx
@@ -269,9 +269,9 @@ void LwpFribPtr::XFConvert()
case FRIB_TAG_HARDSPACE:
{
OUString sHardSpace(sal_Unicode(0x00a0));
- LwpHyperlinkMgr* pHyperlink =
- m_pPara->GetStory()->GetHyperlinkMgr();
- if (pHyperlink->GetHyperlinkFlag())
+ LwpStory *pStory = m_pPara->GetStory();
+ LwpHyperlinkMgr* pHyperlink = pStory ? pStory->GetHyperlinkMgr() : nullptr;
+ if (pHyperlink && pHyperlink->GetHyperlinkFlag())
pFrib->ConvertHyperLink(m_pXFPara,pHyperlink,sHardSpace);
else
pFrib->ConvertChars(m_pXFPara,sHardSpace);
commit 348ba66bec2804325a69979016b7148dc187804e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 13:00:24 2015 +0000
guard against missing BaseStyle
Change-Id: I173b12f0a28f917f24d1923e531da1b798beb1f6
(cherry picked from commit d34cbe279cc8e1db941a4da1130d5a6d7429357d)
Reviewed-on: https://gerrit.libreoffice.org/20523
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 1f052fb8867da4a87f7c3d51eaeae6f680934d19)
diff --git a/lotuswordpro/source/filter/lwptoc.cxx b/lotuswordpro/source/filter/lwptoc.cxx
index 75b9aa7..16f8737 100644
--- a/lotuswordpro/source/filter/lwptoc.cxx
+++ b/lotuswordpro/source/filter/lwptoc.cxx
@@ -132,7 +132,8 @@ void LwpTocSuperLayout::RegisterStyle()
// Get font info of default text style and set into tab style
XFParaStyle* pBaseStyle = static_cast<XFParaStyle*>(m_pFoundry->GetStyleManager()->GetStyle(*m_pFoundry->GetDefaultTextStyle()));
XFTextStyle*pTextStyle = new XFTextStyle;
- pTextStyle->SetFont(pBaseStyle->GetFont()); // who delete this font?????
+ if (pBaseStyle)
+ pTextStyle->SetFont(pBaseStyle->GetFont()); // who delete this font?????
XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
m_TabStyleName = pXFStyleManager->AddStyle(pTextStyle).m_pStyle->GetStyleName();
commit 7e106354f7b14adfb8c4446d8b1683c2a97fc124
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 12:50:57 2015 +0000
guard against missing Section
Change-Id: Id5295d294b56d6504d962ee1941a350a595031e7
(cherry picked from commit c8b4fe55b8b50fc33a9157e93b42aed0f7d30534)
Reviewed-on: https://gerrit.libreoffice.org/20520
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 74a030fb0a90da422f650772da49348ccd84b0b0)
diff --git a/lotuswordpro/source/filter/lwpfribsection.cxx b/lotuswordpro/source/filter/lwpfribsection.cxx
index f66b00f..b870488 100644
--- a/lotuswordpro/source/filter/lwpfribsection.cxx
+++ b/lotuswordpro/source/filter/lwpfribsection.cxx
@@ -167,7 +167,8 @@ void LwpFribSection::ParseSection()
else
{
LwpStory* pStory = static_cast<LwpStory*> ( m_pPara->GetStoryID().obj().get() );
- if (m_Section.obj()->GetTag() == VO_INDEXSECTION)
+ rtl::Reference<LwpObject> xObj(m_Section.obj());
+ if (xObj.is() && xObj->GetTag() == VO_INDEXSECTION)
{
//create a new section and add it to container
XFIndex* pIndex = new XFIndex;
commit 738f904532ab56b2864d0719af62d11f2b3f76b8
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 12:41:48 2015 +0000
guard against missing RootDocument
Change-Id: I1c6b58b58ab489a17419dbf7cd4ecec63359b7f3
(cherry picked from commit 0f700d5bc9c0ebc1e1ebe60758fbbf02590790bc)
Reviewed-on: https://gerrit.libreoffice.org/20516
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 2e34ce925aba7ffbb61ab909fd77722cb192eae9)
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx
index a2ff123..e3412fc 100644
--- a/lotuswordpro/source/filter/lwpdoc.cxx
+++ b/lotuswordpro/source/filter/lwpdoc.cxx
@@ -634,8 +634,8 @@ LwpDocument* LwpDocument::GetPreviousDivision()
LwpDocument* LwpDocument::GetLastDivisionThatHasEndnote()
{
LwpDocument* pRoot = GetRootDocument();
- LwpDocument *pLastDoc = pRoot->GetLastDivisionWithContents();
- while(pLastDoc)
+ LwpDocument *pLastDoc = pRoot ? pRoot->GetLastDivisionWithContents() : nullptr;
+ while (pLastDoc)
{
if(pLastDoc->GetEnSuperTableLayout())
return pLastDoc;
commit c008f5d5d890632db2e360ee16c25a665eb514ab
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 12:33:36 2015 +0000
protect against missing Modifiers
Change-Id: I226f67c6c49bfcbc1fa0ef40fc9f7d5548fa043b
(cherry picked from commit 6c59adca37900dccc394061a730984ecb180aacf)
Reviewed-on: https://gerrit.libreoffice.org/20511
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 02244358dc3021cb23dcb12e06594c1c6f3b0e42)
diff --git a/lotuswordpro/source/filter/lwppara1.cxx b/lotuswordpro/source/filter/lwppara1.cxx
index c6eb252..c9ad2d8 100644
--- a/lotuswordpro/source/filter/lwppara1.cxx
+++ b/lotuswordpro/source/filter/lwppara1.cxx
@@ -241,7 +241,7 @@ void LwpPara::GetParaNumber(sal_uInt16 nPosition, ParaNumbering* pParaNumbering)
{
if (
(pFrib->GetNext() && pFrib->GetNext()->GetType() == FRIB_TAG_TEXT) ||
- (pFrib->GetModifiers()->aTxtAttrOverride.GetHideLevels() == nHideLevels)
+ (pFrib->GetModifiers() && pFrib->GetModifiers()->aTxtAttrOverride.GetHideLevels() == nHideLevels)
)
{
pParaNumbering->pSuffix = static_cast<LwpFribText*>(pFrib);
commit c1afea83925e2830392fef18402120a0a76f278f
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 12:23:11 2015 +0000
protect against missing SuperTable
Change-Id: I788ec28424bb638f727901b7d25e48a284ab67d0
(cherry picked from commit 356109d4ead137ea22b358b20ed22a4bd09d35f6)
Reviewed-on: https://gerrit.libreoffice.org/20508
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit dbb30e5ab13e75fb187431e3678b70dd9830594a)
diff --git a/lotuswordpro/source/filter/lwpfribtable.cxx b/lotuswordpro/source/filter/lwpfribtable.cxx
index edd73da..4adb3ac 100644
--- a/lotuswordpro/source/filter/lwpfribtable.cxx
+++ b/lotuswordpro/source/filter/lwpfribtable.cxx
@@ -98,6 +98,8 @@ void LwpFribTable::XFConvert(XFContentContainer* pCont)
{
XFContentContainer* pXFContentContainer = pCont;
LwpSuperTableLayout* pSuper = GetSuperTable();
+ if (!pSuper)
+ return;
sal_uInt8 nType = pSuper->GetRelativeType();
LwpVirtualLayout* pContainer = pSuper->GetContainerLayout();
if (!pContainer)
commit 0bb9a0dfd2d0d3041fb6cb058a12ba770e8ed225
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 12:09:37 2015 +0000
guard against corrupt SilverBullet
(cherry picked from commit 36d55980b1b3498fecc460d3c46667e5f5a17b8e)
Reviewed-on: https://gerrit.libreoffice.org/20504
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit d387a99fce3f96f4fcd60c70909292255f12840f)
Change-Id: I3af47ab3af5e28a865a77a592f6a92edb46e4f2b
Reviewed-on: https://gerrit.libreoffice.org/20505
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 4f78f0cca72ccd011c6e0af9225fb7b9004eac47)
diff --git a/lotuswordpro/source/filter/lwpsilverbullet.cxx b/lotuswordpro/source/filter/lwpsilverbullet.cxx
index c0c39e9..e7ad33f 100644
--- a/lotuswordpro/source/filter/lwpsilverbullet.cxx
+++ b/lotuswordpro/source/filter/lwpsilverbullet.cxx
@@ -97,7 +97,10 @@ void LwpSilverBullet::Read()
sal_uInt16 nNumPos = m_pObjStrm->QuickReaduInt16();
- for (sal_uInt8 nC = 0; nC < nNumPos; nC++)
+ if (nNumPos > SAL_N_ELEMENTS(m_pResetPositionFlags))
+ throw std::range_error("corrupt SilverBullet");
+
+ for (sal_uInt16 nC = 0; nC < nNumPos; nC++)
m_pResetPositionFlags[nC] = m_pObjStrm->QuickReaduInt8();
m_nUseCount = m_pObjStrm->QuickReaduInt32();
commit 7ec3edb9729c908fb2f3dad0d15e7e32b5bdac2d
Author: Andras Timar <andras.timar at collabora.com>
Date: Wed Dec 9 12:50:19 2015 +0100
tdf#96353 make spell options dialog resizable
Change-Id: I2e9ef88d471f8fa379a03f7b6b95bf14ce172acb
Reviewed-on: https://gerrit.libreoffice.org/20499
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
(cherry picked from commit ccb28049c1420b17a84aa89eee207af4cc517039)
diff --git a/cui/uiconfig/ui/spelloptionsdialog.ui b/cui/uiconfig/ui/spelloptionsdialog.ui
index 527fc4f..29c6add 100644
--- a/cui/uiconfig/ui/spelloptionsdialog.ui
+++ b/cui/uiconfig/ui/spelloptionsdialog.ui
@@ -6,7 +6,6 @@
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Options</property>
- <property name="resizable">False</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
commit 7e6f42bf5bbf5496ba90653b08693344f6ca9275
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 11:56:52 2015 +0000
guard against corrupt ObjIndexData
Change-Id: I214991e5d34c8e335cdd8ea482f8fa4913ba637b
(cherry picked from commit c88a23b9d44118e96de41a70ab7f87eb0aafb126)
Reviewed-on: https://gerrit.libreoffice.org/20502
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 64070e8f3ec976f48e233064795eff756b6d5146)
diff --git a/lotuswordpro/source/filter/lwpidxmgr.cxx b/lotuswordpro/source/filter/lwpidxmgr.cxx
index d6720e7..43208ab 100644
--- a/lotuswordpro/source/filter/lwpidxmgr.cxx
+++ b/lotuswordpro/source/filter/lwpidxmgr.cxx
@@ -215,7 +215,7 @@ void LwpIndexManager::ReadObjIndexData(LwpObjectStream* pObjStrm)
vObjIndexs[k]->offset = pObjStrm->QuickReaduInt32();
for (k = 0; k < LeafCount; k++)
- m_TempVec[k] = pObjStrm->QuickReaduInt32();
+ m_TempVec.at(k) = pObjStrm->QuickReaduInt32();
}
for( sal_uInt16 j=0; j<LeafCount; j++ )
diff --git a/lotuswordpro/source/filter/lwpobjstrm.cxx b/lotuswordpro/source/filter/lwpobjstrm.cxx
index 7f61cdf..edbd562 100644
--- a/lotuswordpro/source/filter/lwpobjstrm.cxx
+++ b/lotuswordpro/source/filter/lwpobjstrm.cxx
@@ -170,7 +170,7 @@ sal_uInt16 LwpObjectStream::QuickRead(void* buf, sal_uInt16 len)
memset(buf, 0, len);
if( len > m_nBufSize - m_nReadPos )
{
- assert(false);
+ SAL_WARN("lwp", "read request longer than buffer");
len = m_nBufSize - m_nReadPos;
}
if( m_pContentBuf && len)
commit eecf8d4eb9c08e1101f44a13b8b4b49cdeabbae2
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Dec 9 11:28:52 2015 +0000
guard against corrupt RootData
Change-Id: Iad2788a7e5e7ee3b3107eab37cde2d3d38eae005
(cherry picked from commit fc943ea85a7924ce0552b08eef99ed8e02f0b965)
Reviewed-on: https://gerrit.libreoffice.org/20496
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
(cherry picked from commit 21e0778bcbb2d90e471f59166e74c00aa044a1df)
diff --git a/lotuswordpro/source/filter/lwpidxmgr.cxx b/lotuswordpro/source/filter/lwpidxmgr.cxx
index 07ea4a1..d6720e7 100644
--- a/lotuswordpro/source/filter/lwpidxmgr.cxx
+++ b/lotuswordpro/source/filter/lwpidxmgr.cxx
@@ -154,7 +154,10 @@ void LwpIndexManager::ReadRootData(LwpObjectStream* pObjStrm)
sal_uInt16 KeyCount = pObjStrm->QuickReaduInt16();
m_nLeafCount = KeyCount ? KeyCount + 1 : 0;
- if(KeyCount)
+ if (m_nLeafCount > SAL_N_ELEMENTS(m_ChildIndex))
+ throw std::range_error("corrupt RootData");
+
+ if (KeyCount)
{
//read object keys
LwpKey* akey = new LwpKey();
diff --git a/lotuswordpro/source/filter/lwptabrack.cxx b/lotuswordpro/source/filter/lwptabrack.cxx
index 0dac754..487d387 100644
--- a/lotuswordpro/source/filter/lwptabrack.cxx
+++ b/lotuswordpro/source/filter/lwptabrack.cxx
@@ -92,7 +92,7 @@ void LwpTabRack::Read()
m_nNumTabs = m_pObjStrm->QuickReaduInt16();
if (m_nNumTabs > MaxTabs)
- throw std::out_of_range("corrupt LwpTabRack");
+ throw std::range_error("corrupt LwpTabRack");
for (int i=0; i<m_nNumTabs; ++i)
{
m_aTabs[i].Read(m_pObjStrm);
More information about the Libreoffice-commits
mailing list