summaryrefslogtreecommitdiff
path: root/sc/source/filter/oox
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2023-07-22 19:55:06 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-07-23 11:53:17 +0200
commitd6f6bcec4dbfa30c199cb5f4db7bea88ebbeb85d (patch)
treece4e4825ba2ae1bc199ae3829ea085044539faf4 /sc/source/filter/oox
parentb6f3b76fb611a5f2c7f32296bc86316b6abb32cb (diff)
cid#1401342 Uncaught exception
Change-Id: I139c5989d243f6f8fd1b37395f1071f7cb179f5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154790 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'sc/source/filter/oox')
-rw-r--r--sc/source/filter/oox/workbookhelper.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx
index 817340afb341..3f9e3fe7d0ec 100644
--- a/sc/source/filter/oox/workbookhelper.cxx
+++ b/sc/source/filter/oox/workbookhelper.cxx
@@ -226,6 +226,8 @@ private:
/** Finalizes the filter process (sets some needed document properties). */
void finalize();
+ void ImplDestroy();
+
private:
typedef ::std::unique_ptr< ScEditEngineDefaulter > EditEngineDefaulterPtr;
typedef ::std::unique_ptr< FormulaBuffer > FormulaBufferPtr;
@@ -308,12 +310,17 @@ WorkbookGlobals::WorkbookGlobals( ExcelFilter& rFilter ) :
initialize();
}
-WorkbookGlobals::~WorkbookGlobals()
+void WorkbookGlobals::ImplDestroy()
{
finalize();
mrExcelFilter.unregisterWorkbookGlobals();
}
+WorkbookGlobals::~WorkbookGlobals()
+{
+ suppress_fun_call_w_exception(ImplDestroy());
+}
+
ScDocumentImport& WorkbookGlobals::getDocImport()
{
return *mxDocImport;