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;  | 
