diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-11-17 02:05:44 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-11-17 02:05:44 +0000 |
commit | 09fe1bb696847e6f1b482e5ac40029d53a2402df (patch) | |
tree | 5117f619d4f63468deab2af2914cede61c741d40 /lib/Lex/ModuleMap.cpp | |
parent | 35f9ae6dd221bd403299a895e97aaaf63507287a (diff) |
Actually free memory for the module maps
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144880 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex/ModuleMap.cpp')
-rw-r--r-- | lib/Lex/ModuleMap.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp index 0c51659cab..393118110a 100644 --- a/lib/Lex/ModuleMap.cpp +++ b/lib/Lex/ModuleMap.cpp @@ -31,6 +31,15 @@ using namespace clang; // Module //----------------------------------------------------------------------------// +ModuleMap::Module::~Module() { + for (llvm::StringMap<Module *>::iterator I = SubModules.begin(), + IEnd = SubModules.end(); + I != IEnd; ++I) { + delete I->getValue(); + } + +} + std::string ModuleMap::Module::getFullModuleName() const { llvm::SmallVector<StringRef, 2> Names; @@ -72,6 +81,12 @@ ModuleMap::ModuleMap(FileManager &FileMgr, const DiagnosticConsumer &DC) { } ModuleMap::~ModuleMap() { + for (llvm::StringMap<Module *>::iterator I = Modules.begin(), + IEnd = Modules.end(); + I != IEnd; ++I) { + delete I->getValue(); + } + delete SourceMgr; } |