From 5acdf59ebc6839fc877604168eb96a76fdb51e77 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 17 Nov 2011 02:05:44 +0000 Subject: Actually free memory for the module maps llvm-svn: 144880 --- clang/lib/Lex/ModuleMap.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'clang/lib/Lex/ModuleMap.cpp') diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index 0c51659..3931181 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::iterator I = SubModules.begin(), + IEnd = SubModules.end(); + I != IEnd; ++I) { + delete I->getValue(); + } + +} + std::string ModuleMap::Module::getFullModuleName() const { llvm::SmallVector Names; @@ -72,6 +81,12 @@ ModuleMap::ModuleMap(FileManager &FileMgr, const DiagnosticConsumer &DC) { } ModuleMap::~ModuleMap() { + for (llvm::StringMap::iterator I = Modules.begin(), + IEnd = Modules.end(); + I != IEnd; ++I) { + delete I->getValue(); + } + delete SourceMgr; } -- cgit v1.1