Revert of SK_DECLARE_STATIC_MUTEX -> static SkMutex (patchset #1 id:1 of https://codereview.chromium.org/1948193002/ )

Reason for revert:
broken the Mac and Linux builders, e.g.:

https://build.chromium.org/p/chromium/builders/Mac/builds/15151
https://build.chromium.org/p/chromium/builders/Linux%20x64/builds/19052

Original issue's description:
> SK_DECLARE_STATIC_MUTEX -> static SkMutex
>
> There's no need to use a macro to declare static SkMutexes any more
> (and there's likewise no need to restrict them to global scope).
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1948193002
>
> Committed: https://skia.googlesource.com/skia/+/5e56cfd3fa1041dbb83899844fb92fa9a2ef1009

TBR=mtklein@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/1945353003
This commit is contained in:
reed 2016-05-04 17:12:46 -07:00 committed by Commit bot
parent 5e56cfd3fa
commit 086eea93b1
23 changed files with 36 additions and 33 deletions

View File

@ -104,7 +104,7 @@ static void info(const char* fmt) {
} }
} }
static SkMutex gFailuresMutex; SK_DECLARE_STATIC_MUTEX(gFailuresMutex);
static SkTArray<SkString> gFailures; static SkTArray<SkString> gFailures;
static void fail(const SkString& err) { static void fail(const SkString& err) {

View File

@ -19,7 +19,7 @@
namespace DM { namespace DM {
SkTArray<JsonWriter::BitmapResult> gBitmapResults; SkTArray<JsonWriter::BitmapResult> gBitmapResults;
static SkMutex gBitmapResultLock; SK_DECLARE_STATIC_MUTEX(gBitmapResultLock);
void JsonWriter::AddBitmapResult(const BitmapResult& result) { void JsonWriter::AddBitmapResult(const BitmapResult& result) {
SkAutoMutexAcquire lock(&gBitmapResultLock); SkAutoMutexAcquire lock(&gBitmapResultLock);
@ -27,7 +27,7 @@ void JsonWriter::AddBitmapResult(const BitmapResult& result) {
} }
SkTArray<skiatest::Failure> gFailures; SkTArray<skiatest::Failure> gFailures;
static SkMutex gFailureLock; SK_DECLARE_STATIC_MUTEX(gFailureLock);
void JsonWriter::AddTestFailure(const skiatest::Failure& failure) { void JsonWriter::AddTestFailure(const skiatest::Failure& failure) {
SkAutoMutexAcquire lock(gFailureLock); SkAutoMutexAcquire lock(gFailureLock);

View File

@ -12,6 +12,9 @@
#include "../private/SkThreadID.h" #include "../private/SkThreadID.h"
#include "SkTypes.h" #include "SkTypes.h"
// TODO: no need for this anymore.
#define SK_DECLARE_STATIC_MUTEX(name) static SkMutex name;
class SkMutex { class SkMutex {
public: public:
constexpr SkMutex() = default; constexpr SkMutex() = default;

View File

@ -44,7 +44,7 @@ SkDeviceProfile* SkDeviceProfile::Create(float gammaExp,
return new SkDeviceProfile(gammaExp, contrast, config, level); return new SkDeviceProfile(gammaExp, contrast, config, level);
} }
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
static SkDeviceProfile* gDefaultProfile; static SkDeviceProfile* gDefaultProfile;
static SkDeviceProfile* gGlobalProfile; static SkDeviceProfile* gGlobalProfile;

View File

@ -1457,7 +1457,7 @@ void SkScalerContext::MakeRec(const SkPaint& paint,
* cachedMaskGamma the caller must hold the gMaskGammaCacheMutex and continue * cachedMaskGamma the caller must hold the gMaskGammaCacheMutex and continue
* to hold it until the returned pointer is refed or forgotten. * to hold it until the returned pointer is refed or forgotten.
*/ */
static SkMutex gMaskGammaCacheMutex; SK_DECLARE_STATIC_MUTEX(gMaskGammaCacheMutex);
static SkMaskGamma* gLinearMaskGamma = nullptr; static SkMaskGamma* gLinearMaskGamma = nullptr;
static SkMaskGamma* gMaskGamma = nullptr; static SkMaskGamma* gMaskGamma = nullptr;

View File

@ -542,7 +542,7 @@ void SkResourceCache::checkMessages() {
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
static SkResourceCache* gResourceCache = nullptr; static SkResourceCache* gResourceCache = nullptr;
/** Must hold gMutex when calling. */ /** Must hold gMutex when calling. */

View File

@ -78,7 +78,7 @@ protected:
} }
static SkMutex gCreateDefaultMutex; SK_DECLARE_STATIC_MUTEX(gCreateDefaultMutex);
SkTypeface* SkTypeface::GetDefaultTypeface(Style style) { SkTypeface* SkTypeface::GetDefaultTypeface(Style style) {
static SkOnce once[4]; static SkOnce once[4];

View File

@ -64,7 +64,7 @@ SkFontID SkTypefaceCache::NewFontID() {
return sk_atomic_inc(&gFontID) + 1; return sk_atomic_inc(&gFontID) + 1;
} }
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
void SkTypefaceCache::Add(SkTypeface* face) { void SkTypefaceCache::Add(SkTypeface* face) {
SkAutoMutexAcquire ama(gMutex); SkAutoMutexAcquire ama(gMutex);

View File

@ -625,7 +625,7 @@ SkGradientShaderBase::GradientShaderCache* SkGradientShaderBase::refCache(U8CPU
return fCache; return fCache;
} }
static SkMutex gGradientCacheMutex; SK_DECLARE_STATIC_MUTEX(gGradientCacheMutex);
/* /*
* Because our caller might rebuild the same (logically the same) gradient * Because our caller might rebuild the same (logically the same) gradient
* over and over, we'd like to return exactly the same "bitmap" if possible, * over and over, we'd like to return exactly the same "bitmap" if possible,

View File

@ -43,7 +43,7 @@ SkTestFont::~SkTestFont() {
#ifdef SK_DEBUG #ifdef SK_DEBUG
#include "SkMutex.h" #include "SkMutex.h"
static SkMutex gUsedCharsMutex; SK_DECLARE_STATIC_MUTEX(gUsedCharsMutex);
#endif #endif

View File

@ -244,7 +244,7 @@ SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkMutex* m
return new DiscardableMemoryPool(size, mutex); return new DiscardableMemoryPool(size, mutex);
} }
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() { SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() {
static SkOnce once; static SkOnce once;

View File

@ -267,7 +267,7 @@ static void show_op(SkPathOp op, const char* pathOne, const char* pathTwo) {
SkDebugf("}\n"); SkDebugf("}\n");
} }
static SkMutex gTestMutex; SK_DECLARE_STATIC_MUTEX(gTestMutex);
void SkPathOpsDebug::ShowPath(const SkPath& a, const SkPath& b, SkPathOp shapeOp, void SkPathOpsDebug::ShowPath(const SkPath& a, const SkPath& b, SkPathOp shapeOp,
const char* testName) { const char* testName) {
@ -646,7 +646,7 @@ void SkOpSegment::debugMissingCoincidence(const char* id, SkPathOpsDebug::Glitch
} }
if (spanBase->segment() != opp && spanBase->containsCoinEnd(opp)) { if (spanBase->segment() != opp && spanBase->containsCoinEnd(opp)) {
continue; continue;
} }
const SkOpPtT* priorPtT = nullptr, * priorStopPtT; const SkOpPtT* priorPtT = nullptr, * priorStopPtT;
// find prior span containing opp segment // find prior span containing opp segment
const SkOpSegment* priorOpp = nullptr; const SkOpSegment* priorOpp = nullptr;
@ -786,11 +786,11 @@ void SkOpSegment::debugMoveMultiples(const char* id, SkPathOpsDebug::GlitchLog*
} }
goto checkNextSpan; goto checkNextSpan;
} }
tryNextSpan: tryNextSpan:
; ;
} while (oppTest != oppLast && (oppTest = oppTest->upCast()->next())); } while (oppTest != oppLast && (oppTest = oppTest->upCast()->next()));
} while ((testPtT = testPtT->next()) != startPtT); } while ((testPtT = testPtT->next()) != startPtT);
checkNextSpan: checkNextSpan:
; ;
} while ((test = test->final() ? nullptr : test->upCast()->next())); } while ((test = test->final() ? nullptr : test->upCast()->next()));
} }
@ -958,7 +958,7 @@ void SkOpSegment::debugShowNewWinding(const char* fun, const SkOpSpan* span, int
// loop looking for a pair of angle parts that are too close to be sorted // loop looking for a pair of angle parts that are too close to be sorted
/* This is called after other more simple intersection and angle sorting tests have been exhausted. /* This is called after other more simple intersection and angle sorting tests have been exhausted.
This should be rarely called -- the test below is thorough and time consuming. This should be rarely called -- the test below is thorough and time consuming.
This checks the distance between start points; the distance between This checks the distance between start points; the distance between
*/ */
#if DEBUG_ANGLE #if DEBUG_ANGLE
void SkOpAngle::debugCheckNearCoincidence() const { void SkOpAngle::debugCheckNearCoincidence() const {
@ -996,7 +996,7 @@ void SkOpAngle::debugCheckNearCoincidence() const {
SkDebugf("\n"); SkDebugf("\n");
} }
test = test->fNext; test = test->fNext;
} while (test->fNext != this); } while (test->fNext != this);
} }
#endif #endif

View File

@ -223,7 +223,7 @@ static void dump_op(const SkPath& one, const SkPath& two, SkPathOp op) {
dump_path(file, two, false, true); dump_path(file, two, false, true);
fprintf(file, " SkPath path2(path);\n"); fprintf(file, " SkPath path2(path);\n");
fprintf(file, " testPathOp(reporter, path1, path2, (SkPathOp) %d, filename);\n", op); fprintf(file, " testPathOp(reporter, path1, path2, (SkPathOp) %d, filename);\n", op);
fprintf(file, "}\n"); fprintf(file, "}\n");
fclose(file); fclose(file);
} }
#endif #endif
@ -233,7 +233,7 @@ static void dump_op(const SkPath& one, const SkPath& two, SkPathOp op) {
#include "SkMutex.h" #include "SkMutex.h"
static SkMutex debugWorstLoop; SK_DECLARE_STATIC_MUTEX(debugWorstLoop);
SkOpGlobalState debugWorstState(nullptr, nullptr SkDEBUGPARAMS(nullptr)); SkOpGlobalState debugWorstState(nullptr, nullptr SkDEBUGPARAMS(nullptr));
@ -254,7 +254,7 @@ bool OpDebug(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result,
SkOpGlobalState globalState(&coincidence, contourList SkDEBUGPARAMS(testName)); SkOpGlobalState globalState(&coincidence, contourList SkDEBUGPARAMS(testName));
#if DEBUGGING_PATHOPS_FROM_HOST #if DEBUGGING_PATHOPS_FROM_HOST
dump_op(one, two, op); dump_op(one, two, op);
#endif #endif
#if 0 && DEBUG_SHOW_TEST_NAME #if 0 && DEBUG_SHOW_TEST_NAME
char* debugName = DEBUG_FILENAME_STRING; char* debugName = DEBUG_FILENAME_STRING;
if (debugName && debugName[0]) { if (debugName && debugName[0]) {

View File

@ -32,7 +32,7 @@ namespace {
// Fontconfig is not threadsafe before 2.10.91. Before that, we lock with a global mutex. // Fontconfig is not threadsafe before 2.10.91. Before that, we lock with a global mutex.
// See https://bug.skia.org/1497 for background. // See https://bug.skia.org/1497 for background.
static SkMutex gFCMutex; SK_DECLARE_STATIC_MUTEX(gFCMutex);
#ifdef SK_DEBUG #ifdef SK_DEBUG
void* CreateThreadFcLocked() { return new bool(false); } void* CreateThreadFcLocked() { return new bool(false); }

View File

@ -145,7 +145,7 @@ private:
struct SkFaceRec; struct SkFaceRec;
static SkMutex gFTMutex; SK_DECLARE_STATIC_MUTEX(gFTMutex);
static FreeTypeLibrary* gFTLibrary; static FreeTypeLibrary* gFTLibrary;
static SkFaceRec* gFaceRecHead; static SkFaceRec* gFaceRecHead;

View File

@ -10,7 +10,7 @@
#include "SkMutex.h" #include "SkMutex.h"
#include "SkRefCnt.h" #include "SkRefCnt.h"
static SkMutex gFontConfigInterfaceMutex; SK_DECLARE_STATIC_MUTEX(gFontConfigInterfaceMutex);
static SkFontConfigInterface* gFontConfigInterface; static SkFontConfigInterface* gFontConfigInterface;
SkFontConfigInterface* SkFontConfigInterface::RefGlobal() { SkFontConfigInterface* SkFontConfigInterface::RefGlobal() {

View File

@ -54,7 +54,7 @@
#define USE_GLOBAL_MUTEX_FOR_CG_ACCESS #define USE_GLOBAL_MUTEX_FOR_CG_ACCESS
#ifdef USE_GLOBAL_MUTEX_FOR_CG_ACCESS #ifdef USE_GLOBAL_MUTEX_FOR_CG_ACCESS
static SkMutex gCGMutex; SK_DECLARE_STATIC_MUTEX(gCGMutex);
#define AUTO_CG_LOCK() SkAutoMutexAcquire amc(gCGMutex) #define AUTO_CG_LOCK() SkAutoMutexAcquire amc(gCGMutex)
#else #else
#define AUTO_CG_LOCK() #define AUTO_CG_LOCK()
@ -550,7 +550,7 @@ static SkTypeface* NewFromName(const char familyName[], const SkFontStyle& theSt
return face; return face;
} }
static SkMutex gGetDefaultFaceMutex; SK_DECLARE_STATIC_MUTEX(gGetDefaultFaceMutex);
static SkTypeface* GetDefaultFace() { static SkTypeface* GetDefaultFace() {
SkAutoMutexAcquire ma(gGetDefaultFaceMutex); SkAutoMutexAcquire ma(gGetDefaultFaceMutex);

View File

@ -62,7 +62,7 @@ namespace {
// Fontconfig is not threadsafe before 2.10.91. Before that, we lock with a global mutex. // Fontconfig is not threadsafe before 2.10.91. Before that, we lock with a global mutex.
// See https://bug.skia.org/1497 for background. // See https://bug.skia.org/1497 for background.
static SkMutex gFCMutex; SK_DECLARE_STATIC_MUTEX(gFCMutex);
#ifdef SK_DEBUG #ifdef SK_DEBUG
void* CreateThreadFcLocked() { return new bool(false); } void* CreateThreadFcLocked() { return new bool(false); }

View File

@ -12,7 +12,7 @@
static bool gOnce = false; static bool gOnce = false;
static DWORD gTlsIndex; static DWORD gTlsIndex;
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
void* SkTLS::PlatformGetSpecific(bool forceCreateTheSlot) { void* SkTLS::PlatformGetSpecific(bool forceCreateTheSlot) {
if (!forceCreateTheSlot && !gOnce) { if (!forceCreateTheSlot && !gOnce) {

View File

@ -257,7 +257,7 @@ SkEventSink* SkEventSink::FindSink(SkEventSinkID sinkID)
#include "SkTDict.h" #include "SkTDict.h"
#define kMinStringBufferSize 128 #define kMinStringBufferSize 128
static SkMutex gNamedSinkMutex; SK_DECLARE_STATIC_MUTEX(gNamedSinkMutex);
static SkTDict<SkEventSinkID> gNamedSinkIDs(kMinStringBufferSize); static SkTDict<SkEventSinkID> gNamedSinkIDs(kMinStringBufferSize);
/** Register a name/id pair with the system. If the name already exists, /** Register a name/id pair with the system. If the name already exists,

View File

@ -331,7 +331,7 @@ void ShowTestArray(const char* testName) {
} }
} }
static SkMutex compareDebugOut3; SK_DECLARE_STATIC_MUTEX(compareDebugOut3);
static int comparePaths(skiatest::Reporter* reporter, const char* testName, const SkPath& one, static int comparePaths(skiatest::Reporter* reporter, const char* testName, const SkPath& one,
const SkPath& scaledOne, const SkPath& two, const SkPath& scaledTwo, SkBitmap& bitmap, const SkPath& scaledOne, const SkPath& two, const SkPath& scaledTwo, SkBitmap& bitmap,
@ -419,7 +419,7 @@ static void outputToStream(const char* pathStr, const char* pathPrefix, const ch
outFile.flush(); outFile.flush();
} }
static SkMutex simplifyDebugOut; SK_DECLARE_STATIC_MUTEX(simplifyDebugOut);
bool testSimplify(SkPath& path, bool useXor, SkPath& out, PathOpsThreadState& state, bool testSimplify(SkPath& path, bool useXor, SkPath& out, PathOpsThreadState& state,
const char* pathStr) { const char* pathStr) {
@ -578,7 +578,7 @@ bool testPathFailOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath&
return true; return true;
} }
static SkMutex gMutex; SK_DECLARE_STATIC_MUTEX(gMutex);
void initializeTests(skiatest::Reporter* reporter, const char* test) { void initializeTests(skiatest::Reporter* reporter, const char* test) {
#if 0 // doesn't work yet #if 0 // doesn't work yet

View File

@ -142,7 +142,7 @@ static const GrGLInterface* create_command_buffer_interface() {
// We use a poor man's garbage collector of EGLDisplays. They are only // We use a poor man's garbage collector of EGLDisplays. They are only
// terminated when there are no more EGLDisplays in use. See crbug.com/603223 // terminated when there are no more EGLDisplays in use. See crbug.com/603223
static SkMutex gDisplayMutex; SK_DECLARE_STATIC_MUTEX(gDisplayMutex);
static int gActiveDisplayCnt; static int gActiveDisplayCnt;
SkTArray<EGLDisplay> gRetiredDisplays; SkTArray<EGLDisplay> gRetiredDisplays;

View File

@ -27,7 +27,7 @@ void release_portable_typefaces() {
} }
} }
static SkMutex gTestFontMutex; SK_DECLARE_STATIC_MUTEX(gTestFontMutex);
SkTypeface* create_font(const char* name, SkTypeface::Style style) { SkTypeface* create_font(const char* name, SkTypeface::Style style) {
SkTestFontData* fontData = nullptr; SkTestFontData* fontData = nullptr;