mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
Fix memory leaks, patch contributed by Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17999 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c540ebbc1b
commit
9945826d50
@ -68,9 +68,6 @@ namespace {
|
||||
}
|
||||
std::cerr << '\n';
|
||||
|
||||
// Clear out results so we don't get duplicate warnings on
|
||||
// next call...
|
||||
Ts.clear();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -82,21 +79,26 @@ namespace {
|
||||
const char* const Name;
|
||||
};
|
||||
|
||||
typedef LeakDetectorImpl<void> Objects;
|
||||
typedef LeakDetectorImpl<Value> LLVMObjects;
|
||||
LeakDetectorImpl<void> *Objects;
|
||||
LeakDetectorImpl<Value> *LLVMObjects;
|
||||
|
||||
Objects& getObjects() {
|
||||
static Objects *o = 0;
|
||||
if (o == 0)
|
||||
o = new Objects("GENERIC");
|
||||
return *o;
|
||||
LeakDetectorImpl<void> &getObjects() {
|
||||
if (Objects == 0)
|
||||
Objects = new LeakDetectorImpl<void>("GENERIC");
|
||||
return *Objects;
|
||||
}
|
||||
|
||||
LLVMObjects& getLLVMObjects() {
|
||||
static LLVMObjects *o = 0;
|
||||
if (o == 0)
|
||||
o = new LLVMObjects("LLVM");
|
||||
return *o;
|
||||
LeakDetectorImpl<Value> &getLLVMObjects() {
|
||||
if (LLVMObjects == 0)
|
||||
LLVMObjects = new LeakDetectorImpl<Value>("LLVM");
|
||||
return *LLVMObjects;
|
||||
}
|
||||
|
||||
void clearGarbage() {
|
||||
delete Objects;
|
||||
delete LLVMObjects;
|
||||
Objects = 0;
|
||||
LLVMObjects = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,4 +124,8 @@ void LeakDetector::checkForGarbageImpl(const std::string &Message) {
|
||||
getLLVMObjects().hasGarbage(Message))
|
||||
std::cerr << "\nThis is probably because you removed an object, but didn't "
|
||||
"delete it. Please check your code for memory leaks.\n";
|
||||
|
||||
// Clear out results so we don't get duplicate warnings on
|
||||
// next call...
|
||||
clearGarbage();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user