diff options
author | Neil <nyamatongwe@gmail.com> | 2021-03-19 10:00:47 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-03-19 10:00:47 +1100 |
commit | 4c086ac7bebe13bcd2146f4e2cebc40510a7223c (patch) | |
tree | 2d1c8b4a15462f056588fd4033a304b2d291feaa /src | |
parent | f1d2180c18c0005a5f0f326515e3b4134e277258 (diff) | |
download | scintilla-mirror-4c086ac7bebe13bcd2146f4e2cebc40510a7223c.tar.gz |
Protect against exceptions from ILexer5::Release as called inside destructor.
Diffstat (limited to 'src')
-rw-r--r-- | src/ScintillaBase.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
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_; |