summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2017-03-16 18:55:42 -0400
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-03-22 00:59:10 +0000
commit118f5e797d7274e5f37d877b8fa3b93e53366991 (patch)
treedd4baadad7c08ea59d87904e5c84b625967675e0 /sc
parent8a9d3e26ded4a0971413d9ccb9ca9a321ff164fb (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/35521 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/vba/vbarange.cxx16
1 files changed, 14 insertions, 2 deletions
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index 95f1d2b4d0b4..00155dbd4992 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -4217,8 +4217,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 );