summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-05-08 17:25:33 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-05-08 17:30:47 +0100
commit4e509d80ee7b22ce0e79d62f7afb7a008726fe5f (patch)
tree5a3cc3cd182123c74c7f042b532a7b151f56eb5e
parentace0b3bdec391aa170fe95c16a1a5d4a07d052df (diff)
fftester: fail on double parse of the same table
Change-Id: I3e462cdc8812d0ac55d9896d2b04ace34a6c4670
-rw-r--r--lotuswordpro/qa/cppunit/data/fail/reference-3.lwpbin0 -> 62632 bytes
-rw-r--r--lotuswordpro/source/filter/lwptablelayout.cxx17
2 files changed, 10 insertions, 7 deletions
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
--- /dev/null
+++ b/lotuswordpro/qa/cppunit/data/fail/reference-3.lwp
Binary files 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