diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-01-24 14:12:12 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-01-24 14:12:12 +0000 |
commit | a05a339c968f0f7ccaca26736f42b11a891fbaa9 (patch) | |
tree | c4d968f1f69e7dff1fdb1156df86cbc79513f37a /llvm/tools/lli/RecordingMemoryManager.cpp | |
parent | 4e3b9802bd73218c8ceca95f49a863eefbba6abd (diff) | |
download | bcm5719-llvm-a05a339c968f0f7ccaca26736f42b11a891fbaa9.tar.gz bcm5719-llvm-a05a339c968f0f7ccaca26736f42b11a891fbaa9.zip |
lli/RecordingMemoryManager: Free allocated sections in the destructor to satisfy --vg-leak!
FIXME: It could be generalized in MemoryManager.
llvm-svn: 173349
Diffstat (limited to 'llvm/tools/lli/RecordingMemoryManager.cpp')
-rw-r--r-- | llvm/tools/lli/RecordingMemoryManager.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/tools/lli/RecordingMemoryManager.cpp b/llvm/tools/lli/RecordingMemoryManager.cpp index 75cb9781306..d9715e1a038 100644 --- a/llvm/tools/lli/RecordingMemoryManager.cpp +++ b/llvm/tools/lli/RecordingMemoryManager.cpp @@ -15,6 +15,17 @@ #include "RecordingMemoryManager.h" using namespace llvm; +RecordingMemoryManager::~RecordingMemoryManager() { + for (SmallVectorImpl<Allocation>::iterator + I = AllocatedCodeMem.begin(), E = AllocatedCodeMem.end(); + I != E; ++I) + free(I->first.base()); + for (SmallVectorImpl<Allocation>::iterator + I = AllocatedDataMem.begin(), E = AllocatedDataMem.end(); + I != E; ++I) + free(I->first.base()); +} + uint8_t *RecordingMemoryManager:: allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) { // The recording memory manager is just a local copy of the remote target. |