diff options
| -rw-r--r-- | include/ILexer.h | 2 | ||||
| -rw-r--r-- | src/ScintillaBase.cxx | 12 |
2 files changed, 1 insertions, 13 deletions
diff --git a/include/ILexer.h b/include/ILexer.h index ee83939ea..991c981e8 100644 --- a/include/ILexer.h +++ b/include/ILexer.h @@ -137,7 +137,7 @@ ILexer5 *lex; public: LexillaLexer(ILexer5 *lex_) : lex(lex_) {} virtual ~LexillaLexer() {} - void SCI_METHOD Release() override { lex->Release(); }; + void SCI_METHOD Release() override { lex->Release(); delete this; }; int SCI_METHOD Version() const override { return lex->Version(); } const char * SCI_METHOD PropertyNames() override { return lex->PropertyNames(); } int SCI_METHOD PropertyType(const char *name) override { return lex->PropertyType(name); } diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0ef8a5b30..92d8577a8 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -604,10 +604,6 @@ LexState::LexState(Document *pdoc_) : LexInterface(pdoc_) { LexState::~LexState() { if (instance) { instance->Release(); - LexillaLexer *iLexer5 = dynamic_cast<LexillaLexer *>(instance); - if (iLexer5) { - delete iLexer5; - } instance = nullptr; } } @@ -615,10 +611,6 @@ LexState::~LexState() { void LexState::SetInstance(ILexer *instance_) { if (instance) { instance->Release(); - LexillaLexer *iLexer5 = dynamic_cast<LexillaLexer *>(instance); - if (iLexer5) { - delete iLexer5; - } instance = nullptr; } instance = instance_; @@ -636,10 +628,6 @@ void LexState::SetLexerModule(const LexerModule *lex) { if (lex != lexCurrent) { if (instance) { instance->Release(); - LexillaLexer *iLexer5 = dynamic_cast<LexillaLexer *>(instance); - if (iLexer5) { - delete iLexer5; - } instance = nullptr; } interfaceVersion = lvOriginal; |
