aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2009-10-20 10:22:14 +0000
committernyamatongwe <devnull@localhost>2009-10-20 10:22:14 +0000
commit61881c28701b8149ac93e71b879a35e31fd95a4e (patch)
treedaba8ecff151010ccb1e2a9e41a6d85bca0fb1ae
parenta7cf8cc24c651504a50872280148fd5c48c50d18 (diff)
downloadscintilla-mirror-61881c28701b8149ac93e71b879a35e31fd95a4e.tar.gz
Ensure enough styles allocated when choosing a lexer.
Fixes bug #2881279.
-rw-r--r--src/ScintillaBase.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx
index 8b6e7a4cb..344b7e296 100644
--- a/src/ScintillaBase.cxx
+++ b/src/ScintillaBase.cxx
@@ -481,6 +481,8 @@ void ScintillaBase::SetLexer(uptr_t wParam) {
lexCurrent = LexerModule::Find(lexLanguage);
if (!lexCurrent)
lexCurrent = LexerModule::Find(SCLEX_NULL);
+ int bits = lexCurrent ? lexCurrent->GetStyleBitsNeeded() : 5;
+ vs.EnsureStyle((1 << bits) - 1);
}
void ScintillaBase::SetLexerLanguage(const char *languageName) {
@@ -490,6 +492,8 @@ void ScintillaBase::SetLexerLanguage(const char *languageName) {
lexCurrent = LexerModule::Find(SCLEX_NULL);
if (lexCurrent)
lexLanguage = lexCurrent->GetLanguage();
+ int bits = lexCurrent ? lexCurrent->GetStyleBitsNeeded() : 5;
+ vs.EnsureStyle((1 << bits) - 1);
}
void ScintillaBase::Colourise(int start, int end) {