From b614f1e13cbb323a045daeef88196d210d0485bc Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Thu, 18 Jun 2009 21:35:56 +0000 Subject: [PATCH] Simplify. llvm-svn: 73725 --- llvm/lib/VMCore/LeakDetector.cpp | 41 ++++++++++---------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/llvm/lib/VMCore/LeakDetector.cpp b/llvm/lib/VMCore/LeakDetector.cpp index 036cb9c616cf..b5926bcf441a 100644 --- a/llvm/lib/VMCore/LeakDetector.cpp +++ b/llvm/lib/VMCore/LeakDetector.cpp @@ -32,7 +32,7 @@ namespace { static void print(const Value* P) { cerr << *P; } }; - ManagedStatic LeakDetectorLock; + ManagedStatic > LeakDetectorLock; template struct VISIBILITY_HIDDEN LeakDetectorImpl { @@ -54,41 +54,26 @@ namespace { // immediately, it is added to the CachedValue Value. If it is // immediately removed, no set search need be performed. void addGarbage(const T* o) { - if (llvm_is_multithreaded()) { - sys::ScopedWriter Writer(&*LeakDetectorLock); - if (Cache) { - assert(Ts.count(Cache) == 0 && "Object already in set!"); - Ts.insert(Cache); - } - Cache = o; - } else { - if (Cache) { - assert(Ts.count(Cache) == 0 && "Object already in set!"); - Ts.insert(Cache); - } - Cache = o; + sys::SmartScopedWriter Writer(&*LeakDetectorLock); + if (Cache) { + assert(Ts.count(Cache) == 0 && "Object already in set!"); + Ts.insert(Cache); } + Cache = o; } void removeGarbage(const T* o) { - if (llvm_is_multithreaded()) { - sys::ScopedWriter Writer(&*LeakDetectorLock); - if (o == Cache) - Cache = 0; // Cache hit - else - Ts.erase(o); - } else { - if (o == Cache) - Cache = 0; // Cache hit - else - Ts.erase(o); - } + sys::SmartScopedWriter Writer(&*LeakDetectorLock); + if (o == Cache) + Cache = 0; // Cache hit + else + Ts.erase(o); } bool hasGarbage(const std::string& Message) { addGarbage(0); // Flush the Cache - if (llvm_is_multithreaded()) LeakDetectorLock->reader_acquire(); + sys::SmartScopedReader Reader(&*LeakDetectorLock); assert(Cache == 0 && "No value should be cached anymore!"); if (!Ts.empty()) { @@ -101,11 +86,9 @@ namespace { } cerr << '\n'; - if (llvm_is_multithreaded()) LeakDetectorLock->reader_release(); return true; } - if (llvm_is_multithreaded()) LeakDetectorLock->reader_release(); return false; }