diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-08-30 10:20:33 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-08-30 10:32:16 +0100 |
commit | 9accbfa0a52433cf03fe186fc69334d387981eb9 (patch) | |
tree | 92d65f59da97ecd232c7c2c4406219b8a22b2e28 /sw/source/core/docnode | |
parent | 1d1748d143ab4270a2ca1b5117852b1b1bb4c526 (diff) |
fftester: non-contiguous cells
Change-Id: I1bf57f6e365b9e99a1893b5333e043ac6bc7b476
Diffstat (limited to 'sw/source/core/docnode')
-rw-r--r-- | sw/source/core/docnode/ndtbl.cxx | 14 |
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(); |