diff options
author | nyamatongwe <unknown> | 2001-05-21 11:11:14 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2001-05-21 11:11:14 +0000 |
commit | 54ccb03d29f1f1dfeba0c8d81c0c13743a862ec7 (patch) | |
tree | ee8791ea91777108d786e220244a74a3a5a656af /win32/ExternalLexer.cxx | |
parent | 877f10c2fc4bb89b4755b9cbc82977a92070c849 (diff) | |
download | scintilla-mirror-54ccb03d29f1f1dfeba0c8d81c0c13743a862ec7.tar.gz |
Update from Simon to make startup and finalise work properly.
Diffstat (limited to 'win32/ExternalLexer.cxx')
-rw-r--r-- | win32/ExternalLexer.cxx | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/win32/ExternalLexer.cxx b/win32/ExternalLexer.cxx index d6df40343..77c235940 100644 --- a/win32/ExternalLexer.cxx +++ b/win32/ExternalLexer.cxx @@ -21,6 +21,7 @@ int LexerManager::UseCount = 0; LexerLibrary *LexerManager::first = NULL; LexerLibrary *LexerManager::last = NULL; +LexerManager *LexerManager::firstlm = NULL; //------------------------------------------ // @@ -210,7 +211,8 @@ LexerManager::LexerManager() { UseCount++; if (1 == UseCount) { - EnumerateLexers(); + firstlm = this; + m_bLoaded = false; } } @@ -279,4 +281,31 @@ LexerManager::~LexerManager() { last = NULL; } } + if (this == firstlm) + firstlm = NULL; +} + +void LexerManager::Load() +{ + if(!m_bLoaded) + { + m_bLoaded = true; + EnumerateLexers(); + } } + +// Return a LexerManager, or create one and then return it. +LexerManager *LexerManager::GetInstance() { + if(!firstlm) + firstlm = new LexerManager; + return firstlm; +} + +LMMinder::~LMMinder() +{ + LexerManager *rem = LexerManager::firstlm; + if(rem) + delete rem; +} + +LMMinder minder; |