From e454067f9722bf56ea253fc1e605232474c67fa9 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Thu, 18 Jun 2009 21:35:56 +0000 Subject: [PATCH] Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73725 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/LeakDetector.cpp | 41 +++++++++++-------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/lib/VMCore/LeakDetector.cpp b/lib/VMCore/LeakDetector.cpp index 036cb9c616c..b5926bcf441 100644 --- a/lib/VMCore/LeakDetector.cpp +++ b/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; }