diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-04-14 12:45:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-04-14 12:47:23 +0100 |
commit | 234f150f30d881b2691288c5f5581306bd4d3d18 (patch) | |
tree | d4e64acf3ed2df17ae0674903ea6aabae7ccf2e1 /sw | |
parent | 1856186951a70a0bcac4e0c3632ca4afe68c05e3 (diff) |
Resolves: fdo#48640 handle various busted rtf docs without hanging
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/docnode/ndtbl.cxx | 10 | ||||
-rw-r--r-- | sw/source/core/unocore/unotext.cxx | 4 |
2 files changed, 13 insertions, 1 deletions
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 0817150b20f8..7be23f36612c 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -1078,8 +1078,16 @@ SwTableNode* SwNodes::TextToTable( const SwNodeRange& rRange, sal_Unicode cCh, const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes ) { + if (rTableNodes.empty()) + return NULL; + + std::vector<SwNodeRange> rFirstRange = *rTableNodes.begin(); + + if (rFirstRange.empty()) + return NULL; + /* Save first node in the selection if it is a content node. */ - SwCntntNode * pSttCntntNd = rTableNodes.begin()->begin()->aStart.GetNode().GetCntntNode(); + SwCntntNode * pSttCntntNd = rFirstRange.begin()->aStart.GetNode().GetCntntNode(); /**debug**/ #if OSL_DEBUG_LEVEL > 1 diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 08e6ce57d7bd..2334391a9729 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -2230,6 +2230,10 @@ throw (lang::IllegalArgumentException, uno::RuntimeException) std::vector<VerticallyMergedCell> aMergedCells; SwTable const*const pTable = m_pImpl->m_pDoc->TextToTable( aTableNodes ); + + if (!pTable) + return uno::Reference< text::XTextTable >(); + SwXTextTable *const pTextTable = new SwXTextTable( *pTable->GetFrmFmt() ); const uno::Reference< text::XTextTable > xRet = pTextTable; const uno::Reference< beans::XPropertySet > xPrSet = pTextTable; |