aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gyp/tests.gypi1
-rw-r--r--gyp/tools.gyp11
-rw-r--r--include/core/SkImageFilter.h1
-rw-r--r--include/core/SkRefCnt.h5
-rw-r--r--include/core/SkWeakRefCnt.h7
-rw-r--r--src/core/SkImageFilter.cpp10
-rw-r--r--tests/ClipCacheTest.cpp11
-rw-r--r--tests/ImageFilterTest.cpp2
-rw-r--r--tests/MetaDataTest.cpp11
-rw-r--r--tests/RefCntTest.cpp11
-rw-r--r--tests/RefDictTest.cpp31
-rw-r--r--tests/SurfaceTest.cpp7
-rw-r--r--tests/UtilsTest.cpp51
-rw-r--r--tools/RefCntIs.cpp9
-rw-r--r--tools/RefCntIs.h13
-rw-r--r--tools/tsan.supp3
16 files changed, 67 insertions, 117 deletions
diff --git a/gyp/tests.gypi b/gyp/tests.gypi
index ba0bc87176..66741d55cc 100644
--- a/gyp/tests.gypi
+++ b/gyp/tests.gypi
@@ -24,7 +24,6 @@
'tools.gyp:picture_utils',
'tools.gyp:resources',
'tools.gyp:sk_tool_utils',
- 'tools.gyp:ref_cnt_is',
],
'sources': [
'../tests/Test.cpp',
diff --git a/gyp/tools.gyp b/gyp/tools.gyp
index 30d014c5f8..e16fa4bb7e 100644
--- a/gyp/tools.gyp
+++ b/gyp/tools.gyp
@@ -44,17 +44,6 @@
],
],
},
- {
- 'target_name': 'ref_cnt_is',
- 'type': 'static_library',
- 'sources': [ '../tools/RefCntIs.cpp' ],
- 'direct_dependent_settings': {
- 'include_dirs': [ '../tools' ],
- },
- 'dependencies': [
- 'skia_lib.gyp:skia_lib',
- ],
- },
{ # This would go in gm.gyp, but it's also used by skimage below.
'target_name': 'gm_expectations',
'type': 'static_library',
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index a571184aa2..ea882537c1 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -51,7 +51,6 @@ public:
class SK_API Cache : public SkRefCnt {
public:
// By default, we cache only image filters with 2 or more children.
- // Values less than 2 mean always cache; values greater than 2 are not supported.
static Cache* Create(int minChildren = 2);
virtual ~Cache() {}
virtual bool get(const SkImageFilter* key, SkBitmap* result, SkIPoint* offset) = 0;
diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h
index d3a26df4d5..1724c77d8d 100644
--- a/include/core/SkRefCnt.h
+++ b/include/core/SkRefCnt.h
@@ -42,10 +42,8 @@ public:
#endif
}
-#ifdef SK_DEBUG
/** Return the reference count. Use only for debugging. */
int32_t getRefCnt() const { return fRefCnt; }
-#endif
/** May return true if the caller is the only owner.
* Ensures that all previous owner's actions are complete.
@@ -120,9 +118,6 @@ private:
mutable int32_t fRefCnt;
- // Used by tests.
- friend bool RefCntIs(const SkRefCntBase&, int32_t);
-
typedef SkNoncopyable INHERITED;
};
diff --git a/include/core/SkWeakRefCnt.h b/include/core/SkWeakRefCnt.h
index d9f0dc80d6..210dcc9f1c 100644
--- a/include/core/SkWeakRefCnt.h
+++ b/include/core/SkWeakRefCnt.h
@@ -60,18 +60,20 @@ public:
*/
SkWeakRefCnt() : SkRefCnt(), fWeakCnt(1) {}
-#ifdef SK_DEBUG
/** Destruct, asserting that the weak reference count is 1.
*/
virtual ~SkWeakRefCnt() {
+#ifdef SK_DEBUG
SkASSERT(fWeakCnt == 1);
fWeakCnt = 0;
+#endif
}
/** Return the weak reference count.
*/
int32_t getWeakCnt() const { return fWeakCnt; }
+#ifdef SK_DEBUG
void validate() const {
this->INHERITED::validate();
SkASSERT(fWeakCnt > 0);
@@ -153,9 +155,6 @@ private:
/* Invariant: fWeakCnt = #weak + (fRefCnt > 0 ? 1 : 0) */
mutable int32_t fWeakCnt;
- // Used by tests.
- friend bool WeakRefCntIs(const SkWeakRefCnt&, int32_t);
-
typedef SkRefCnt INHERITED;
};
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 64603b4cb5..8402a55a22 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -361,10 +361,7 @@ static uint32_t compute_hash(const uint32_t* data, int count) {
class CacheImpl : public SkImageFilter::Cache {
public:
- explicit CacheImpl(int minChildren) : fMinChildren(minChildren) {
- SkASSERT(fMinChildren <= 2);
- }
-
+ explicit CacheImpl(int minChildren) : fMinChildren(minChildren) {}
virtual ~CacheImpl();
bool get(const SkImageFilter* key, SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
void set(const SkImageFilter* key, const SkBitmap& result, const SkIPoint& offset) SK_OVERRIDE;
@@ -407,10 +404,7 @@ void CacheImpl::remove(const SkImageFilter* key) {
}
void CacheImpl::set(const SkImageFilter* key, const SkBitmap& result, const SkIPoint& offset) {
- if (fMinChildren < 2 || !key->unique()) {
- // We take !key->unique() as a signal that there are probably at least 2 refs on the key,
- // meaning this filter probably has at least two children and is worth caching when
- // fMinChildren is 2. If fMinChildren is less than two, we'll just always cache.
+ if (key->getRefCnt() >= fMinChildren) {
fData.add(new Value(key, result, offset));
}
}
diff --git a/tests/ClipCacheTest.cpp b/tests/ClipCacheTest.cpp
index c6f33c7eed..77f0137d5a 100644
--- a/tests/ClipCacheTest.cpp
+++ b/tests/ClipCacheTest.cpp
@@ -6,7 +6,6 @@
*/
#include "Test.h"
-#include "RefCntIs.h"
// This is a GR test
#if SK_SUPPORT_GPU
#include "../../src/gpu/GrClipMaskManager.h"
@@ -165,14 +164,14 @@ static void test_cache(skiatest::Reporter* reporter, GrContext* context) {
// check that the set took
check_state(reporter, cache, clip1, texture1, bound1);
- REPORTER_ASSERT(reporter, !RefCntIs(*texture1, 0));
+ REPORTER_ASSERT(reporter, texture1->getRefCnt());
// push the state
cache.push();
// verify that the pushed state is initially empty
check_empty_state(reporter, cache);
- REPORTER_ASSERT(reporter, !RefCntIs(*texture1, 0));
+ REPORTER_ASSERT(reporter, texture1->getRefCnt());
// modify the new state
SkIRect bound2;
@@ -190,8 +189,8 @@ static void test_cache(skiatest::Reporter* reporter, GrContext* context) {
// check that the changes took
check_state(reporter, cache, clip2, texture2, bound2);
- REPORTER_ASSERT(reporter, !RefCntIs(*texture1, 0));
- REPORTER_ASSERT(reporter, !RefCntIs(*texture2, 0));
+ REPORTER_ASSERT(reporter, texture1->getRefCnt());
+ REPORTER_ASSERT(reporter, texture2->getRefCnt());
// check to make sure canReuse works
REPORTER_ASSERT(reporter, cache.canReuse(clip2.getTopmostGenID(), bound2));
@@ -202,7 +201,7 @@ static void test_cache(skiatest::Reporter* reporter, GrContext* context) {
// verify that the old state is restored
check_state(reporter, cache, clip1, texture1, bound1);
- REPORTER_ASSERT(reporter, !RefCntIs(*texture1, 0));
+ REPORTER_ASSERT(reporter, texture1->getRefCnt());
// manually clear the state
cache.reset();
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index 20899f4ee9..32822087ba 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -262,7 +262,7 @@ static void test_crop_rects(SkBaseDevice* device, skiatest::Reporter* reporter)
SkIPoint offset;
SkString str;
str.printf("filter %d", static_cast<int>(i));
- SkAutoTUnref<SkImageFilter::Cache> cache(SkImageFilter::Cache::Create());
+ SkAutoTUnref<SkImageFilter::Cache> cache(SkImageFilter::Cache::Create(2));
SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeLargest(), cache.get());
REPORTER_ASSERT_MESSAGE(reporter, filter->filterImage(&proxy, bitmap, ctx,
&result, &offset), str.c_str());
diff --git a/tests/MetaDataTest.cpp b/tests/MetaDataTest.cpp
index 293e12a64d..eb7eae9e0f 100644
--- a/tests/MetaDataTest.cpp
+++ b/tests/MetaDataTest.cpp
@@ -6,12 +6,11 @@
*/
#include "SkMetaData.h"
-#include "RefCntIs.h"
#include "Test.h"
static void test_ptrs(skiatest::Reporter* reporter) {
SkRefCnt ref;
- REPORTER_ASSERT(reporter, RefCntIs(ref, 1));
+ REPORTER_ASSERT(reporter, 1 == ref.getRefCnt());
{
SkMetaData md0, md1;
@@ -20,19 +19,19 @@ static void test_ptrs(skiatest::Reporter* reporter) {
md0.setRefCnt(name, &ref);
REPORTER_ASSERT(reporter, md0.findRefCnt(name));
REPORTER_ASSERT(reporter, md0.hasRefCnt(name, &ref));
- REPORTER_ASSERT(reporter, RefCntIs(ref, 2));
+ REPORTER_ASSERT(reporter, 2 == ref.getRefCnt());
md1 = md0;
REPORTER_ASSERT(reporter, md1.findRefCnt(name));
REPORTER_ASSERT(reporter, md1.hasRefCnt(name, &ref));
- REPORTER_ASSERT(reporter, RefCntIs(ref, 3));
+ REPORTER_ASSERT(reporter, 3 == ref.getRefCnt());
REPORTER_ASSERT(reporter, md0.removeRefCnt(name));
REPORTER_ASSERT(reporter, !md0.findRefCnt(name));
REPORTER_ASSERT(reporter, !md0.hasRefCnt(name, &ref));
- REPORTER_ASSERT(reporter, RefCntIs(ref, 2));
+ REPORTER_ASSERT(reporter, 2 == ref.getRefCnt());
}
- REPORTER_ASSERT(reporter, RefCntIs(ref, 1));
+ REPORTER_ASSERT(reporter, 1 == ref.getRefCnt());
}
DEF_TEST(MetaData, reporter) {
diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp
index 5f2cbe466f..bd4f348fba 100644
--- a/tests/RefCntTest.cpp
+++ b/tests/RefCntTest.cpp
@@ -10,7 +10,6 @@
#include "SkThreadUtils.h"
#include "SkTypes.h"
#include "SkWeakRefCnt.h"
-#include "RefCntIs.h"
#include "Test.h"
class InstCounterClass {
@@ -34,7 +33,7 @@ static void test_refarray(skiatest::Reporter* reporter) {
const int N = 10;
SkTRefArray<InstCounterClass>* array = SkTRefArray<InstCounterClass>::Create(N);
- REPORTER_ASSERT(reporter, RefCntIs(*array, 1));
+ REPORTER_ASSERT(reporter, 1 == array->getRefCnt());
REPORTER_ASSERT(reporter, N == array->count());
REPORTER_ASSERT(reporter, N == InstCounterClass::gInstCounter);
@@ -51,7 +50,7 @@ static void test_refarray(skiatest::Reporter* reporter) {
}
array = SkTRefArray<InstCounterClass>::Create(src, N);
- REPORTER_ASSERT(reporter, RefCntIs(*array, 1));
+ REPORTER_ASSERT(reporter, 1 == array->getRefCnt());
REPORTER_ASSERT(reporter, N == array->count());
REPORTER_ASSERT(reporter, 2*N == InstCounterClass::gInstCounter);
@@ -92,7 +91,7 @@ static void test_refCnt(skiatest::Reporter* reporter) {
thing1.join();
thing2.join();
- REPORTER_ASSERT(reporter, RefCntIs(*ref, 1));
+ REPORTER_ASSERT(reporter, ref->getRefCnt() == 1);
ref->unref();
}
@@ -136,8 +135,8 @@ static void test_weakRefCnt(skiatest::Reporter* reporter) {
thing3.join();
thing4.join();
- REPORTER_ASSERT(reporter, RefCntIs(*ref, 1));
- REPORTER_ASSERT(reporter, WeakRefCntIs(*ref, 1));
+ REPORTER_ASSERT(reporter, ref->getRefCnt() == 1);
+ REPORTER_ASSERT(reporter, ref->getWeakCnt() == 1);
ref->unref();
}
diff --git a/tests/RefDictTest.cpp b/tests/RefDictTest.cpp
index 5b9987e29a..1e18a6815d 100644
--- a/tests/RefDictTest.cpp
+++ b/tests/RefDictTest.cpp
@@ -6,7 +6,6 @@
*/
#include "SkRefDict.h"
-#include "RefCntIs.h"
#include "Test.h"
class TestRC : public SkRefCnt {
@@ -26,50 +25,50 @@ DEF_TEST(RefDict, reporter) {
dict.set("foo", &data0);
REPORTER_ASSERT(reporter, &data0 == dict.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 2));
+ REPORTER_ASSERT(reporter, 2 == data0.getRefCnt());
dict.set("foo", &data0);
REPORTER_ASSERT(reporter, &data0 == dict.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 2));
+ REPORTER_ASSERT(reporter, 2 == data0.getRefCnt());
dict.set("foo", &data1);
REPORTER_ASSERT(reporter, &data1 == dict.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(data1, 2));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == data1.getRefCnt());
dict.set("foo", NULL);
REPORTER_ASSERT(reporter, NULL == dict.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(data1, 1));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == data1.getRefCnt());
dict.set("foo", &data0);
dict.set("bar", &data1);
REPORTER_ASSERT(reporter, &data0 == dict.find("foo"));
REPORTER_ASSERT(reporter, &data1 == dict.find("bar"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 2));
- REPORTER_ASSERT(reporter, RefCntIs(data1, 2));
+ REPORTER_ASSERT(reporter, 2 == data0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == data1.getRefCnt());
dict.set("foo", &data1);
REPORTER_ASSERT(reporter, &data1 == dict.find("foo"));
REPORTER_ASSERT(reporter, &data1 == dict.find("bar"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(data1, 3));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
+ REPORTER_ASSERT(reporter, 3 == data1.getRefCnt());
dict.removeAll();
REPORTER_ASSERT(reporter, NULL == dict.find("foo"));
REPORTER_ASSERT(reporter, NULL == dict.find("bar"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(data1, 1));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == data1.getRefCnt());
{
SkRefDict d;
REPORTER_ASSERT(reporter, NULL == d.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
d.set("foo", &data0);
REPORTER_ASSERT(reporter, &data0 == d.find("foo"));
- REPORTER_ASSERT(reporter, RefCntIs(data0, 2));
+ REPORTER_ASSERT(reporter, 2 == data0.getRefCnt());
// let d go out of scope still with a ref on data0
}
// be sure d's destructor lowered data0's owner count back to 1
- REPORTER_ASSERT(reporter, RefCntIs(data0, 1));
+ REPORTER_ASSERT(reporter, 1 == data0.getRefCnt());
}
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index 93ba3c2b9e..610e3370f6 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -11,7 +11,6 @@
#include "SkRRect.h"
#include "SkSurface.h"
#include "SkUtils.h"
-#include "RefCntIs.h"
#include "Test.h"
#if SK_SUPPORT_GPU
@@ -78,11 +77,11 @@ static void test_image(skiatest::Reporter* reporter) {
void* addr = sk_malloc_throw(size);
SkData* data = SkData::NewFromMalloc(addr, size);
- REPORTER_ASSERT(reporter, RefCntIs(*data, 1));
+ REPORTER_ASSERT(reporter, 1 == data->getRefCnt());
SkImage* image = SkImage::NewRasterData(info, data, rowBytes);
- REPORTER_ASSERT(reporter, RefCntIs(*data, 2));
+ REPORTER_ASSERT(reporter, 2 == data->getRefCnt());
image->unref();
- REPORTER_ASSERT(reporter, RefCntIs(*data, 1));
+ REPORTER_ASSERT(reporter, 1 == data->getRefCnt());
data->unref();
}
diff --git a/tests/UtilsTest.cpp b/tests/UtilsTest.cpp
index 9454b54e5c..438a5cce47 100644
--- a/tests/UtilsTest.cpp
+++ b/tests/UtilsTest.cpp
@@ -10,7 +10,6 @@
#include "SkTSearch.h"
#include "SkTSort.h"
#include "SkUtils.h"
-#include "RefCntIs.h"
#include "Test.h"
class RefClass : public SkRefCnt {
@@ -28,30 +27,30 @@ private:
static void test_autounref(skiatest::Reporter* reporter) {
RefClass obj(0);
- REPORTER_ASSERT(reporter, RefCntIs(obj, 1));
+ REPORTER_ASSERT(reporter, 1 == obj.getRefCnt());
SkAutoTUnref<RefClass> tmp(&obj);
REPORTER_ASSERT(reporter, &obj == tmp.get());
- REPORTER_ASSERT(reporter, RefCntIs(obj, 1));
+ REPORTER_ASSERT(reporter, 1 == obj.getRefCnt());
REPORTER_ASSERT(reporter, &obj == tmp.detach());
- REPORTER_ASSERT(reporter, RefCntIs(obj, 1));
+ REPORTER_ASSERT(reporter, 1 == obj.getRefCnt());
REPORTER_ASSERT(reporter, NULL == tmp.detach());
REPORTER_ASSERT(reporter, NULL == tmp.get());
obj.ref();
- REPORTER_ASSERT(reporter, RefCntIs(obj, 2));
+ REPORTER_ASSERT(reporter, 2 == obj.getRefCnt());
{
SkAutoTUnref<RefClass> tmp2(&obj);
}
- REPORTER_ASSERT(reporter, RefCntIs(obj, 1));
+ REPORTER_ASSERT(reporter, 1 == obj.getRefCnt());
}
static void test_autostarray(skiatest::Reporter* reporter) {
RefClass obj0(0);
RefClass obj1(1);
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
{
SkAutoSTArray<2, SkRefPtr<RefClass> > tmp;
@@ -62,14 +61,14 @@ static void test_autostarray(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, 4 == tmp.count());
tmp[0] = &obj0;
tmp[1] = &obj1;
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 2));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 2));
+ REPORTER_ASSERT(reporter, 2 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == obj1.getRefCnt());
// test out reset with data in the array (and a new allocation)
tmp.reset(0);
REPORTER_ASSERT(reporter, 0 == tmp.count());
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
tmp.reset(2); // this should use the preexisting allocation
REPORTER_ASSERT(reporter, 2 == tmp.count());
@@ -78,8 +77,8 @@ static void test_autostarray(skiatest::Reporter* reporter) {
}
// test out destructor with data in the array (and using existing allocation)
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
{
// test out allocating ctor (this should allocate new memory)
@@ -88,32 +87,32 @@ static void test_autostarray(skiatest::Reporter* reporter) {
tmp[0] = &obj0;
tmp[1] = &obj1;
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 2));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 2));
+ REPORTER_ASSERT(reporter, 2 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == obj1.getRefCnt());
// Test out resut with data in the array and malloced storage
tmp.reset(0);
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
tmp.reset(2); // this should use the preexisting storage
tmp[0] = &obj0;
tmp[1] = &obj1;
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 2));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 2));
+ REPORTER_ASSERT(reporter, 2 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == obj1.getRefCnt());
tmp.reset(4); // this should force a new malloc
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
tmp[0] = &obj0;
tmp[1] = &obj1;
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 2));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 2));
+ REPORTER_ASSERT(reporter, 2 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 2 == obj1.getRefCnt());
}
- REPORTER_ASSERT(reporter, RefCntIs(obj0, 1));
- REPORTER_ASSERT(reporter, RefCntIs(obj1, 1));
+ REPORTER_ASSERT(reporter, 1 == obj0.getRefCnt());
+ REPORTER_ASSERT(reporter, 1 == obj1.getRefCnt());
}
/////////////////////////////////////////////////////////////////////////////
diff --git a/tools/RefCntIs.cpp b/tools/RefCntIs.cpp
deleted file mode 100644
index 48154b045c..0000000000
--- a/tools/RefCntIs.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "RefCntIs.h"
-
-bool RefCntIs(const SkRefCntBase& obj, int32_t n) {
- return obj.fRefCnt == n;
-}
-
-bool WeakRefCntIs(const SkWeakRefCnt& obj, int32_t n) {
- return obj.fWeakCnt == n;
-}
diff --git a/tools/RefCntIs.h b/tools/RefCntIs.h
deleted file mode 100644
index 86d3cc3e12..0000000000
--- a/tools/RefCntIs.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef RefCntIs_DEFINED
-#define RefCntIs_DEFINED
-
-// Allows tests to assert a particular value for a ref count,
-// without letting Skia library code look at that value.
-
-#include "SkRefCnt.h"
-#include "SkWeakRefCnt.h"
-
-bool RefCntIs(const SkRefCntBase&, int32_t);
-bool WeakRefCntIs(const SkWeakRefCnt&, int32_t);
-
-#endif//RefCntIs_DEFINED
diff --git a/tools/tsan.supp b/tools/tsan.supp
index f687014040..8c95e7a9c5 100644
--- a/tools/tsan.supp
+++ b/tools/tsan.supp
@@ -25,3 +25,6 @@ race:is_lcd_supported
race:RefFCI
race:SkString
race:SkPDF
+
+# This calls SkRefCnt::getRefCnt(), which is not thread safe. skia:2726
+race:SkImageFilter::filterImage