From 4c086ac7bebe13bcd2146f4e2cebc40510a7223c Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 19 Mar 2021 10:00:47 +1100 Subject: Protect against exceptions from ILexer5::Release as called inside destructor. --- src/ScintillaBase.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 93c41d3d9..1e55fcfbf 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -584,14 +584,22 @@ LexState::LexState(Document *pdoc_) noexcept : LexInterface(pdoc_) { LexState::~LexState() { if (instance) { - instance->Release(); + try { + instance->Release(); + } catch (...) { + // ILexer5::Release must not throw, ignore if it does. + } instance = nullptr; } } void LexState::SetInstance(ILexer5 *instance_) { if (instance) { - instance->Release(); + try { + instance->Release(); + } catch (...) { + // ILexer5::Release must not throw, ignore if it does. + } instance = nullptr; } instance = instance_; -- cgit v1.2.3