[Libreoffice-commits] core.git: lotuswordpro/inc lotuswordpro/qa lotuswordpro/source

2021-08-26 Thread Caolán McNamara (via logerrit)
 lotuswordpro/inc/xfilter/xftable.hxx |2 +
 lotuswordpro/qa/cppunit/data/fail/ofz35646-1.lwp |binary
 lotuswordpro/source/filter/xfilter/xfcell.cxx|2 -
 lotuswordpro/source/filter/xfilter/xftable.cxx   |   32 ++-
 4 files changed, 34 insertions(+), 2 deletions(-)

New commits:
commit b67f42c4c2906b7059b93d748c8efccd588b1e1c
Author: Caolán McNamara 
AuthorDate: Wed Aug 25 17:42:17 2021 +0100
Commit: Caolán McNamara 
CommitDate: Thu Aug 26 09:56:08 2021 +0200

ofz#35646 Indirect-leak

Change-Id: Ie79d9c49b6beef04ab111a63166abc7f093ad36b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121041
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/lotuswordpro/inc/xfilter/xftable.hxx 
b/lotuswordpro/inc/xfilter/xftable.hxx
index f36a1f295be6..ce292f3a258c 100644
--- a/lotuswordpro/inc/xfilter/xftable.hxx
+++ b/lotuswordpro/inc/xfilter/xftable.hxx
@@ -115,6 +115,8 @@ private:
 OUString   m_strDefCellStyle;
 OUString   m_strDefRowStyle;
 OUString   m_strDefColStyle;
+
+bool ContainsTable(const XFTable* pTable) const;
 };
 
 inline void XFTable::SetTableName(const OUString& name)
diff --git a/lotuswordpro/qa/cppunit/data/fail/ofz35646-1.lwp 
b/lotuswordpro/qa/cppunit/data/fail/ofz35646-1.lwp
new file mode 100644
index ..5db8cea8c5bd
Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/fail/ofz35646-1.lwp 
differ
diff --git a/lotuswordpro/source/filter/xfilter/xfcell.cxx 
b/lotuswordpro/source/filter/xfilter/xfcell.cxx
index bbfde6eab9f3..dfc5889db652 100644
--- a/lotuswordpro/source/filter/xfilter/xfcell.cxx
+++ b/lotuswordpro/source/filter/xfilter/xfcell.cxx
@@ -157,7 +157,7 @@ OUString   XFCell::GetCellName()
 return name;
 }
 
-voidXFCell::ToXml(IXFStream *pStrm)
+void XFCell::ToXml(IXFStream *pStrm)
 {
 IXFAttrList *pAttrList = pStrm->GetAttrList();
 
diff --git a/lotuswordpro/source/filter/xfilter/xftable.cxx 
b/lotuswordpro/source/filter/xfilter/xftable.cxx
index 6acb1b21a35f..4326f218b1e2 100644
--- a/lotuswordpro/source/filter/xfilter/xftable.cxx
+++ b/lotuswordpro/source/filter/xfilter/xftable.cxx
@@ -81,6 +81,30 @@ voidXFTable::SetColumnStyle(sal_Int32 col, const 
OUString& style)
 m_aColumns[col] = style;
 }
 
+bool XFTable::ContainsTable(const XFTable* pTable) const
+{
+for (auto const& elem : m_aRows)
+{
+const XFRow *pRow = elem.second.get();
+
+for (sal_Int32 i = 0; i < pRow->GetCellCount(); ++i)
+{
+const XFCell* pCell = pRow->GetCell(i + 1); //starts at 1, not 0
+if (const XFTable* pSubTable = pCell->GetSubTable())
+{
+if (pSubTable == pTable)
+return true;
+if (pTable->ContainsTable(pTable))
+return true;
+}
+if (pCell->HierarchyContains(pTable))
+return true;
+}
+}
+
+return false;
+}
+
 void XFTable::AddRow(rtl::Reference const & rRow)
 {
 assert(rRow);
@@ -88,8 +112,14 @@ void XFTable::AddRow(rtl::Reference const & rRow)
 for (sal_Int32 i = 0; i < rRow->GetCellCount(); ++i)
 {
 XFCell* pFirstCell = rRow->GetCell(i + 1); //starts at 1, not 0
-if (pFirstCell->GetSubTable() == this || 
pFirstCell->HierarchyContains(this))
+if (const XFTable* pSubTable = pFirstCell->GetSubTable())
+{
+if (pSubTable == this || pSubTable->ContainsTable(this))
+throw std::runtime_error("table is a subtable of itself");
+}
+if (pFirstCell->HierarchyContains(this))
 throw std::runtime_error("table is a subtable of itself");
+
 }
 
 int row = rRow->GetRow();


[Libreoffice-commits] core.git: lotuswordpro/inc lotuswordpro/qa lotuswordpro/source

2020-01-20 Thread Caolán McNamara (via logerrit)
 lotuswordpro/inc/xfilter/xfcontent.hxx|3 ---
 lotuswordpro/qa/cppunit/data/pass/tdf129993-2.lwp |binary
 lotuswordpro/qa/cppunit/data/pass/tdf71147-1.lwp  |binary
 lotuswordpro/source/filter/lwptablelayout.cxx |2 +-
 lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx |3 ---
 5 files changed, 1 insertion(+), 7 deletions(-)

New commits:
commit 0453eb32b9055fe27fcb7b9cef22c46d32e59196
Author: Caolán McNamara 
AuthorDate: Mon Jan 20 19:45:26 2020 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 20 21:54:35 2020 +0100

Resolves: tdf#130093 some lwp file not loading

Change-Id: I2be53792f0fadcf1ca0e99c8f9fab7305d0fcddd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87100
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/lotuswordpro/inc/xfilter/xfcontent.hxx 
b/lotuswordpro/inc/xfilter/xfcontent.hxx
index 8cb5be5da2c6..ca5bfc4a9da3 100644
--- a/lotuswordpro/inc/xfilter/xfcontent.hxx
+++ b/lotuswordpro/inc/xfilter/xfcontent.hxx
@@ -105,7 +105,6 @@ public:
 protected:
 XFContent()
 : m_bDoingToXml(false)
-, m_bInserted(false)
 {
 }
 
@@ -116,8 +115,6 @@ protected:
 OUString m_strStyleName;
 private:
 bool m_bDoingToXml;
-public:
-bool m_bInserted;
 };
 
 #endif
diff --git a/lotuswordpro/qa/cppunit/data/pass/tdf129993-2.lwp 
b/lotuswordpro/qa/cppunit/data/pass/tdf129993-2.lwp
new file mode 100644
index ..0f0645e3ba77
Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/pass/tdf129993-2.lwp 
differ
diff --git a/lotuswordpro/qa/cppunit/data/pass/tdf71147-1.lwp 
b/lotuswordpro/qa/cppunit/data/pass/tdf71147-1.lwp
new file mode 100644
index ..fc351f434dde
Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/pass/tdf71147-1.lwp 
differ
diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx 
b/lotuswordpro/source/filter/lwptablelayout.cxx
index a49c4375858b..e1647dd34511 100644
--- a/lotuswordpro/source/filter/lwptablelayout.cxx
+++ b/lotuswordpro/source/filter/lwptablelayout.cxx
@@ -834,7 +834,7 @@ void LwpTableLayout::Read()
 void LwpTableLayout::XFConvert(XFContentContainer* pCont)
 {
 if (!m_pXFTable)
-throw std::runtime_error("missing table");
+return;
 pCont->Add(m_pXFTable.get());
 }
 /**
diff --git a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx 
b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
index c8e8de733027..b64ad72721a4 100644
--- a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
+++ b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
@@ -70,9 +70,6 @@ XFContentContainer::~XFContentContainer()
 
 void XFContentContainer::Add(XFContent *pContent)
 {
-if (pContent->m_bInserted)
-throw std::runtime_error("already inserted");
-pContent->m_bInserted = true;
 m_aContents.emplace_back(pContent);
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: lotuswordpro/inc lotuswordpro/qa lotuswordpro/source

2018-02-12 Thread Caolán McNamara
 lotuswordpro/inc/xfilter/xfcontent.hxx|3 +++
 lotuswordpro/qa/cppunit/data/fail/ofz6208-1.lwp   |binary
 lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx |9 ++---
 3 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 22fc8c634c5f9b09d45aff0403503f4d8226328d
Author: Caolán McNamara 
Date:   Mon Feb 12 14:01:20 2018 +

ofz#6208 Indirect-leak

Change-Id: I8d6761bd951cc1ddd4a45eabb26428bc40c2271a
Reviewed-on: https://gerrit.libreoffice.org/49600
Tested-by: Jenkins 
Reviewed-by: Caolán McNamara 
Tested-by: Caolán McNamara 

diff --git a/lotuswordpro/inc/xfilter/xfcontent.hxx 
b/lotuswordpro/inc/xfilter/xfcontent.hxx
index 611f9daaa719..38021b4fcd7a 100644
--- a/lotuswordpro/inc/xfilter/xfcontent.hxx
+++ b/lotuswordpro/inc/xfilter/xfcontent.hxx
@@ -105,6 +105,7 @@ public:
 protected:
 XFContent()
 : m_bDoingToXml(false)
+, m_bInserted(false)
 {
 }
 
@@ -115,6 +116,8 @@ protected:
 OUString m_strStyleName;
 private:
 bool m_bDoingToXml;
+public:
+bool m_bInserted;
 };
 
 #endif
diff --git a/lotuswordpro/qa/cppunit/data/fail/ofz6208-1.lwp 
b/lotuswordpro/qa/cppunit/data/fail/ofz6208-1.lwp
new file mode 100644
index ..5b068065a1f0
Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/fail/ofz6208-1.lwp 
differ
diff --git a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx 
b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
index 67dc59017343..b1398bc023cd 100644
--- a/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
+++ b/lotuswordpro/source/filter/xfilter/xfcontentcontainer.cxx
@@ -68,8 +68,11 @@ XFContentContainer::~XFContentContainer()
 {
 }
 
-voidXFContentContainer::Add(XFContent *pContent)
+void XFContentContainer::Add(XFContent *pContent)
 {
+if (pContent->m_bInserted)
+throw std::runtime_error("already inserted");
+pContent->m_bInserted = true;
 m_aContents.emplace_back(pContent);
 }
 
@@ -80,12 +83,12 @@ void XFContentContainer::Add(const OUString& text)
 Add(xTC.get());
 }
 
-int XFContentContainer::GetCount() const
+int XFContentContainer::GetCount() const
 {
 return m_aContents.size();
 }
 
-voidXFContentContainer::Reset()
+void XFContentContainer::Reset()
 {
 m_aContents.clear();
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits