summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-11-17 02:05:44 +0000
committerDouglas Gregor <dgregor@apple.com>2011-11-17 02:05:44 +0000
commit5acdf59ebc6839fc877604168eb96a76fdb51e77 (patch)
treee92be16d0be0885bb524a80c8c2827ba6fdde1fe /clang/lib/Lex/ModuleMap.cpp
parent667971778c11243f98ebc77d75c98a9ee0e92aa7 (diff)
downloadbcm5719-llvm-5acdf59ebc6839fc877604168eb96a76fdb51e77.tar.gz
bcm5719-llvm-5acdf59ebc6839fc877604168eb96a76fdb51e77.zip
Actually free memory for the module maps
llvm-svn: 144880
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
-rw-r--r--clang/lib/Lex/ModuleMap.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp
index 0c51659cab8..393118110af 100644
--- a/clang/lib/Lex/ModuleMap.cpp
+++ b/clang/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;
}
OpenPOWER on IntegriCloud