diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-12-13 16:04:04 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-12-13 16:04:04 +0000 |
commit | 53bd3d0b1a0ae5550578c7b341a7f55e620d8773 (patch) | |
tree | 00e9b6c7953dadffcfc784b93139d92bf3b16277 | |
parent | a125162bb0306a92cce3f03e9e837f98f2cbb032 (diff) | |
download | bcm5719-llvm-53bd3d0b1a0ae5550578c7b341a7f55e620d8773.tar.gz bcm5719-llvm-53bd3d0b1a0ae5550578c7b341a7f55e620d8773.zip |
Get rid of some leaks found by VC leak detector.
Patch contributed by Morten Ofsted.
llvm-svn: 18889
-rw-r--r-- | llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Support/Timer.cpp | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp b/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp index eff24de89e3..66034330159 100644 --- a/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp +++ b/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp @@ -51,6 +51,7 @@ namespace { unsigned char *CurStubPtr, *CurFunctionPtr; public: JITMemoryManager(); + ~JITMemoryManager(); inline unsigned char *allocateStub(unsigned StubSize); inline unsigned char *startFunctionBody(); @@ -69,6 +70,10 @@ JITMemoryManager::JITMemoryManager() { CurStubPtr = CurFunctionPtr = FunctionBase; } +JITMemoryManager::~JITMemoryManager() { + sys::Memory::ReleaseRWX(MemBlock); +} + unsigned char *JITMemoryManager::allocateStub(unsigned StubSize) { CurStubPtr -= StubSize; if (CurStubPtr < MemBase) { diff --git a/llvm/lib/Support/Timer.cpp b/llvm/lib/Support/Timer.cpp index ff3fd6fefe0..4b88be2b094 100644 --- a/llvm/lib/Support/Timer.cpp +++ b/llvm/lib/Support/Timer.cpp @@ -33,12 +33,10 @@ namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); } // problem is that a Statistic<> object gets destroyed, which ends up calling // 'GetLibSupportInfoOutputFile()' (below), which calls this function. // LibSupportInfoOutputFilename used to be a global variable, but sometimes it -// would get destroyed before the Statistic, causing havoc to ensue. We "fix" -// this by creating the string the first time it is needed and never destroying -// it. +// would get destroyed before the Statistic, causing havoc to ensue. static std::string &getLibSupportInfoOutputFilename() { - static std::string *LibSupportInfoOutputFilename = new std::string(); - return *LibSupportInfoOutputFilename; + static std::string LibSupportInfoOutputFilename; + return LibSupportInfoOutputFilename; } namespace { |