BUG: fix load command stuff for cygwin and cleanup at exit

This commit is contained in:
Bill Hoffman 2002-09-30 16:25:02 -04:00
parent 04d8ba688c
commit a63f7ba43c
4 changed files with 22 additions and 5 deletions

View File

@ -7,6 +7,7 @@
#include "CMakeCommandLineInfo.h"
#include "../cmListFileCache.h"
#include "../cmCacheManager.h"
#include "../cmDynamicLoader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@ -77,6 +78,7 @@ BOOL CMakeSetup::InitInstance()
// clean up globals
cmListFileCache::GetInstance()->ClearCache();
cmDynamicLoader::FlushCache();
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;

View File

@ -32,6 +32,7 @@ cmTarget.o \
cmCustomCommand.o \
cmCacheManager.o \
cmListFileCache.o \
cmDynamicLoader.o \
cmSourceGroup.o
DEPENDS = cmConfigure.h
@ -53,6 +54,7 @@ cmLocalUnixMakefileGenerator.o : $(DEPENDS)
cmCommands.o : $(DEPENDS) $(srcdir)/*Command*.cxx
cmTarget.o : $(DEPENDS)
cmCacheManager.o : $(DEPENDS)
cmDynamicLoader.o : $(DEPENDS)
cmSourceGroup.o : $(DEPENDS)

View File

@ -44,7 +44,6 @@ cmDynamicLoaderCache* cmDynamicLoaderCache::Instance = 0;
cmDynamicLoaderCache::~cmDynamicLoaderCache()
{
this->FlushCache();
}
void cmDynamicLoaderCache::CacheFile(const char* path, const cmLibHandle& p)
@ -71,13 +70,16 @@ bool cmDynamicLoaderCache::GetCacheFile(const char* path, cmLibHandle& p)
bool cmDynamicLoaderCache::FlushCache(const char* path)
{
std::map<std::string, cmLibHandle>::iterator it = m_CacheMap.find(path);
bool ret = false;
if ( it != m_CacheMap.end() )
{
cmDynamicLoader::CloseLibrary(it->second);
m_CacheMap.erase(it);
return true;
ret = true;
}
return false;
delete cmDynamicLoaderCache::Instance;
cmDynamicLoaderCache::Instance = 0;
return ret;
}
void cmDynamicLoaderCache::FlushCache()

View File

@ -17,8 +17,20 @@
#include "cmakewizard.h"
#include "cmake.h"
#include "cmCacheManager.h"
#include "cmDynamicLoader.h"
#include "cmListFileCache.h"
int do_cmake(int ac, char** av);
int main(int ac, char** av)
{
int ret = do_cmake(ac, av);
cmDynamicLoader::FlushCache();
cmListFileCache::GetInstance()->ClearCache();
return ret;
}
int do_cmake(int ac, char** av)
{
bool wiz = false;
bool command = false;
@ -54,6 +66,5 @@ int main(int ac, char** av)
return 0;
}
cmake cm;
int ret = cm.Run(args);
return ret;
return cm.Run(args);
}