[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - lotuswordpro/qa lotuswordpro/source

Caolán McNamara caolanm at redhat.com
Tue May 10 19:15:23 UTC 2016


 lotuswordpro/qa/cppunit/data/fail/recurse-3.lwp |binary
 lotuswordpro/source/filter/xfilter/xfcell.hxx   |    2 ++
 lotuswordpro/source/filter/xfilter/xftable.cxx  |    7 +++++++
 3 files changed, 9 insertions(+)

New commits:
commit 930c8d14c554428e5b75a9c43d7ed349f742e1a8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon May 9 10:55:39 2016 +0100

    fftester: subtable is a subtable of itself
    
    Change-Id: I9de983e3c9436ab3a37d3482b0f18f04c7cdaaca
    (cherry picked from commit b18d49e09a66b9ad29e1c75796ebbf75d407c8d5)
    Reviewed-on: https://gerrit.libreoffice.org/24791
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/lotuswordpro/qa/cppunit/data/fail/recurse-3.lwp b/lotuswordpro/qa/cppunit/data/fail/recurse-3.lwp
new file mode 100644
index 0000000..acb8c93
Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/fail/recurse-3.lwp differ
diff --git a/lotuswordpro/source/filter/xfilter/xfcell.hxx b/lotuswordpro/source/filter/xfilter/xfcell.hxx
index 001855e..5d7b0c9 100644
--- a/lotuswordpro/source/filter/xfilter/xfcell.hxx
+++ b/lotuswordpro/source/filter/xfilter/xfcell.hxx
@@ -141,6 +141,8 @@ public:
      */
     virtual void    ToXml(IXFStream *pStrm) override;
 
+    const XFTable*  GetSubTable() const { return m_pSubTable; }
+
 private:
     XFRow          *m_pOwnerRow;
     XFTable        *m_pSubTable;
diff --git a/lotuswordpro/source/filter/xfilter/xftable.cxx b/lotuswordpro/source/filter/xfilter/xftable.cxx
index d139a85..dadb434 100644
--- a/lotuswordpro/source/filter/xfilter/xftable.cxx
+++ b/lotuswordpro/source/filter/xfilter/xftable.cxx
@@ -91,6 +91,13 @@ void XFTable::AddRow(XFRow *pRow)
 {
     assert(pRow);
 
+    for (sal_Int32 i = 0; i < pRow->GetCellCount(); ++i)
+    {
+        XFCell* pFirstCell = pRow->GetCell(i + 1); //starts at 1, not 0
+        if (pFirstCell->GetSubTable() == this)
+            throw std::runtime_error("table is a subtable of itself");
+    }
+
     int row = pRow->GetRow();
 
     if( row<1 )


More information about the Libreoffice-commits mailing list