summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp b/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
index 584b93f8150..0741f6ad94e 100644
--- a/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
+++ b/llvm/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
@@ -324,7 +324,7 @@ namespace {
// When emitting code into a memory block, this is the block.
MemoryRangeHeader *CurBlock;
- uint8_t *GOTBase; // Target Specific reserved memory
+ std::unique_ptr<uint8_t[]> GOTBase; // Target Specific reserved memory
public:
DefaultJITMemoryManager();
~DefaultJITMemoryManager();
@@ -525,7 +525,7 @@ namespace {
}
uint8_t *getGOTBase() const override {
- return GOTBase;
+ return GOTBase.get();
}
void deallocateBlock(void *Block) {
@@ -638,21 +638,17 @@ DefaultJITMemoryManager::DefaultJITMemoryManager()
// Start out with the freelist pointing to Mem0.
FreeMemoryList = Mem0;
-
- GOTBase = nullptr;
}
void DefaultJITMemoryManager::AllocateGOT() {
assert(!GOTBase && "Cannot allocate the got multiple times");
- GOTBase = new uint8_t[sizeof(void*) * 8192];
+ GOTBase = make_unique<uint8_t[]>(sizeof(void*) * 8192);
HasGOT = true;
}
DefaultJITMemoryManager::~DefaultJITMemoryManager() {
for (unsigned i = 0, e = CodeSlabs.size(); i != e; ++i)
sys::Memory::ReleaseRWX(CodeSlabs[i]);
-
- delete[] GOTBase;
}
sys::MemoryBlock DefaultJITMemoryManager::allocateNewSlab(size_t size) {
OpenPOWER on IntegriCloud