| Index: src/core/SkPixelRef.cpp
|
| diff --git a/src/core/SkPixelRef.cpp b/src/core/SkPixelRef.cpp
|
| index bb21372f15a108accdd55aaadf199ceec3697e98..47f958dc38bffc62ebbcda36356a6c52ab79972d 100644
|
| --- a/src/core/SkPixelRef.cpp
|
| +++ b/src/core/SkPixelRef.cpp
|
| @@ -13,52 +13,6 @@
|
| //#define SK_SUPPORT_LEGACY_UNBALANCED_PIXELREF_LOCKCOUNT
|
| //#define SK_TRACE_PIXELREF_LIFETIME
|
|
|
| -#ifdef SK_BUILD_FOR_WIN32
|
| - // We don't have SK_BASE_MUTEX_INIT on Windows.
|
| -
|
| - // must be a power-of-2. undef to just use 1 mutex
|
| - #define PIXELREF_MUTEX_RING_COUNT 32
|
| - static SkBaseMutex gPixelRefMutexRing[PIXELREF_MUTEX_RING_COUNT];
|
| -
|
| -#else
|
| - static SkBaseMutex gPixelRefMutexRing[] = {
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| -
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| -
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| -
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - SK_BASE_MUTEX_INIT, SK_BASE_MUTEX_INIT,
|
| - };
|
| - // must be a power-of-2. undef to just use 1 mutex
|
| - #define PIXELREF_MUTEX_RING_COUNT SK_ARRAY_COUNT(gPixelRefMutexRing)
|
| -
|
| -#endif
|
| -
|
| -static SkBaseMutex* get_default_mutex() {
|
| - static int32_t gPixelRefMutexRingIndex;
|
| -
|
| - SkASSERT(SkIsPow2(PIXELREF_MUTEX_RING_COUNT));
|
| -
|
| - // atomic_inc might be overkill here. It may be fine if once in a while
|
| - // we hit a race-condition and two subsequent calls get the same index...
|
| - int index = sk_atomic_inc(&gPixelRefMutexRingIndex);
|
| - return &gPixelRefMutexRing[index & (PIXELREF_MUTEX_RING_COUNT - 1)];
|
| -}
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| #include "SkNextID.h"
|
|
|
| uint32_t SkNextID::ImageID() {
|
| @@ -73,13 +27,6 @@ uint32_t SkNextID::ImageID() {
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -void SkPixelRef::setMutex(SkBaseMutex* mutex) {
|
| - if (NULL == mutex) {
|
| - mutex = get_default_mutex();
|
| - }
|
| - fMutex = mutex;
|
| -}
|
| -
|
| // just need a > 0 value, so pick a funny one to aid in debugging
|
| #define SKPIXELREF_PRELOCKED_LOCKCOUNT 123456789
|
|
|
| @@ -103,26 +50,6 @@ SkPixelRef::SkPixelRef(const SkImageInfo& info)
|
| #ifdef SK_TRACE_PIXELREF_LIFETIME
|
| SkDebugf(" pixelref %d\n", sk_atomic_inc(&gInstCounter));
|
| #endif
|
| - this->setMutex(NULL);
|
| - fRec.zero();
|
| - fLockCount = 0;
|
| - this->needsNewGenID();
|
| - fMutability = kMutable;
|
| - fPreLocked = false;
|
| - fAddedToCache.store(false);
|
| -}
|
| -
|
| -
|
| -SkPixelRef::SkPixelRef(const SkImageInfo& info, SkBaseMutex* mutex)
|
| - : fInfo(validate_info(info))
|
| -#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
|
| - , fStableID(SkNextID::ImageID())
|
| -#endif
|
| -{
|
| -#ifdef SK_TRACE_PIXELREF_LIFETIME
|
| - SkDebugf(" pixelref %d\n", sk_atomic_inc(&gInstCounter));
|
| -#endif
|
| - this->setMutex(mutex);
|
| fRec.zero();
|
| fLockCount = 0;
|
| this->needsNewGenID();
|
| @@ -186,7 +113,7 @@ void SkPixelRef::setPreLocked(void* pixels, size_t rowBytes, SkColorTable* ctabl
|
|
|
| // Increments fLockCount only on success
|
| bool SkPixelRef::lockPixelsInsideMutex() {
|
| - fMutex->assertHeld();
|
| + fMutex.assertHeld();
|
|
|
| if (1 == ++fLockCount) {
|
| SkASSERT(fRec.isZero());
|
| @@ -212,7 +139,7 @@ bool SkPixelRef::lockPixels() {
|
|
|
| if (!fPreLocked) {
|
| TRACE_EVENT_BEGIN0("skia", "SkPixelRef::lockPixelsMutex");
|
| - SkAutoMutexAcquire ac(*fMutex);
|
| + SkAutoMutexAcquire ac(fMutex);
|
| TRACE_EVENT_END0("skia", "SkPixelRef::lockPixelsMutex");
|
| SkDEBUGCODE(int oldCount = fLockCount;)
|
| bool success = this->lockPixelsInsideMutex();
|
| @@ -245,7 +172,7 @@ void SkPixelRef::unlockPixels() {
|
| SkASSERT(!fPreLocked || SKPIXELREF_PRELOCKED_LOCKCOUNT == fLockCount);
|
|
|
| if (!fPreLocked) {
|
| - SkAutoMutexAcquire ac(*fMutex);
|
| + SkAutoMutexAcquire ac(fMutex);
|
|
|
| SkASSERT(fLockCount > 0);
|
| if (0 == --fLockCount) {
|
| @@ -278,7 +205,7 @@ bool SkPixelRef::requestLock(const LockRequest& request, LockResult* result) {
|
| result->fRowBytes = fRec.fRowBytes;
|
| result->fSize.set(fInfo.width(), fInfo.height());
|
| } else {
|
| - SkAutoMutexAcquire ac(*fMutex);
|
| + SkAutoMutexAcquire ac(fMutex);
|
| if (!this->onRequestLock(request, result)) {
|
| return false;
|
| }
|
|
|