summaryrefslogtreecommitdiff
path: root/sw/source/core/docnode
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-08-30 10:20:33 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-08-30 10:32:16 +0100
commit9accbfa0a52433cf03fe186fc69334d387981eb9 (patch)
tree92d65f59da97ecd232c7c2c4406219b8a22b2e28 /sw/source/core/docnode
parent1d1748d143ab4270a2ca1b5117852b1b1bb4c526 (diff)
fftester: non-contiguous cells
Change-Id: I1bf57f6e365b9e99a1893b5333e043ac6bc7b476
Diffstat (limited to 'sw/source/core/docnode')
-rw-r--r--sw/source/core/docnode/ndtbl.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 0abfc39c6d3e..216070ef2f98 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -1181,6 +1181,7 @@ const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >
++aRg.aEnd;
}
+ bool bFailure = false;
{
// TODO: this is not Undo-able - only good enough for file import
@@ -1188,11 +1189,17 @@ const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >
SwNodeIndex const prev(rTableNodes.begin()->begin()->aStart, -1);
SwNodeIndex const* pPrev(&prev);
// pPrev could point to non-textnode now
- for (auto row = rTableNodes.begin(); row != rTableNodes.end(); ++row)
+ for (auto row = rTableNodes.begin(); row != rTableNodes.end() && !bFailure; ++row)
{
for (auto cell = row->begin(); cell != row->end(); ++cell)
{
- assert(SwNodeIndex(*pPrev, +1) == cell->aStart);
+ bFailure = (SwNodeIndex(*pPrev, +1) != cell->aStart);
+ if (bFailure)
+ {
+ SAL_WARN("sw.core", "cell start is not directly after previous cell end");
+ break;
+ }
+
SwPaM pam(cell->aStart, 0, *pPrev,
(pPrev->GetNode().IsContentNode())
? pPrev->GetNode().GetContentNode()->Len() : 0);
@@ -1212,6 +1219,9 @@ const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >
GetIDocumentUndoRedo().DoUndo(bUndo);
+ if (bFailure)
+ return nullptr;
+
// Create the Box/Line/Table construct
SwTableBoxFormat* pBoxFormat = MakeTableBoxFormat();
SwTableLineFormat* pLineFormat = MakeTableLineFormat();