diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2017-03-16 18:55:42 -0400 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-03-22 00:14:18 +0000 |
commit | 5112b09445069015de6f82524ea9247a1d73f35e (patch) | |
tree | 5ce93eab6a6d0652bf435b474536041a940c6ce0 | |
parent | 4c7775247fbbf38cd397fd7649bf10810f27a0b4 (diff) |
tdf#104383: prevent crash during file load.
Apparently xView may be null sometimes.
Change-Id: Icef81159eeaf5c9bdb0a91e036019b820952d20b
(cherry picked from commit 273d7cec114ace96c5d891fdb24ddc36be3a2376)
Reviewed-on: https://gerrit.libreoffice.org/35520
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r-- | sc/source/ui/vba/vbarange.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index f68d5495a9d8..af3a4e6c48e1 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -4215,8 +4215,20 @@ ScVbaRange::ApplicationRange( const uno::Reference< uno::XComponentContext >& xC } } - uno::Reference< sheet::XSpreadsheetView > xView( getCurrentExcelDoc(xContext)->getCurrentController(), uno::UNO_QUERY ); - uno::Reference< table::XCellRange > xSheetRange( xView->getActiveSheet(), uno::UNO_QUERY_THROW ); + uno::Reference<table::XCellRange> xSheetRange; + + try + { + uno::Reference<sheet::XSpreadsheetView> xView( + getCurrentExcelDoc(xContext)->getCurrentController(), uno::UNO_QUERY_THROW); + + xSheetRange.set(xView->getActiveSheet(), uno::UNO_QUERY_THROW); + } + catch (const uno::Exception&) + { + return uno::Reference<excel::XRange>(); + } + ScVbaRange* pRange = new ScVbaRange( excel::getUnoSheetModuleObj( xSheetRange ), xContext, xSheetRange ); uno::Reference< excel::XRange > xVbSheetRange( pRange ); return pRange->Range( Cell1, Cell2, true ); |