aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authormitchell <unknown>2020-06-02 16:19:18 -0400
committermitchell <unknown>2020-06-02 16:19:18 -0400
commitf52c3f4db66b87bfee5b4873737bfd6756716aef (patch)
treede5d206e7f08d53e31ddfefdc7aa7f315d1a52bb
parent5a013803f6098c3cae50b71e4081827a8916630e (diff)
downloadscintilla-mirror-f52c3f4db66b87bfee5b4873737bfd6756716aef.tar.gz
Fixed crashes on Win32 related to previous backport.
-rw-r--r--include/ILexer.h2
-rw-r--r--src/ScintillaBase.cxx12
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;