From 4e509d80ee7b22ce0e79d62f7afb7a008726fe5f Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sun, 8 May 2016 17:25:33 +0100 Subject: fftester: fail on double parse of the same table Change-Id: I3e462cdc8812d0ac55d9896d2b04ace34a6c4670 --- lotuswordpro/qa/cppunit/data/fail/reference-3.lwp | Bin 0 -> 62632 bytes lotuswordpro/source/filter/lwptablelayout.cxx | 17 ++++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 lotuswordpro/qa/cppunit/data/fail/reference-3.lwp (limited to 'lotuswordpro') diff --git a/lotuswordpro/qa/cppunit/data/fail/reference-3.lwp b/lotuswordpro/qa/cppunit/data/fail/reference-3.lwp new file mode 100644 index 000000000000..6076b43b75bf Binary files /dev/null and b/lotuswordpro/qa/cppunit/data/fail/reference-3.lwp differ diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx b/lotuswordpro/source/filter/lwptablelayout.cxx index 4eaa7ce3955a..0c8cbb2fbe73 100644 --- a/lotuswordpro/source/filter/lwptablelayout.cxx +++ b/lotuswordpro/source/filter/lwptablelayout.cxx @@ -754,9 +754,8 @@ void LwpTableLayout::RegisterStyle() // so the NULL pointer cause sodc freeze. Add code to check the // the pointer. //New Code - if( GetFoundry() && GetTable() ) - - PutCellVals( GetFoundry(),GetTable()->GetObjectID() ); + if (GetFoundry() && GetTable()) + PutCellVals(GetFoundry(), GetTable()->GetObjectID()); } /** * @short read table layout @@ -765,11 +764,15 @@ void LwpTableLayout::RegisterStyle() void LwpTableLayout::ParseTable() { // get super table layout - LwpSuperTableLayout * pSuper = GetSuperTableLayout(); - if(!pSuper) + LwpSuperTableLayout* pSuper = GetSuperTableLayout(); + if (!pSuper) { - assert(false); - return; + throw std::runtime_error("missing super table"); + } + + if (m_pXFTable.get()) + { + throw std::runtime_error("this table is already parsed"); } // set name of object -- cgit