diff options
Diffstat (limited to 'src/utils/SkEventTracer.cpp')
-rw-r--r-- | src/utils/SkEventTracer.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/utils/SkEventTracer.cpp b/src/utils/SkEventTracer.cpp index 32a0207c23..0a748d1464 100644 --- a/src/utils/SkEventTracer.cpp +++ b/src/utils/SkEventTracer.cpp @@ -7,7 +7,7 @@ #include "SkAtomics.h" #include "SkEventTracer.h" -#include "SkOncePtr.h" +#include "SkOnce.h" #include <stdlib.h> @@ -39,9 +39,8 @@ class SkDefaultEventTracer : public SkEventTracer { } }; -// We prefer gUserTracer if it's been set, otherwise we fall back on gDefaultTracer. +// We prefer gUserTracer if it's been set, otherwise we fall back on a default tracer; static SkEventTracer* gUserTracer = nullptr; -SK_DECLARE_STATIC_ONCE_PTR(SkDefaultEventTracer, gDefaultTracer); void SkEventTracer::SetInstance(SkEventTracer* tracer) { SkASSERT(nullptr == sk_atomic_load(&gUserTracer, sk_memory_order_acquire)); @@ -54,5 +53,8 @@ SkEventTracer* SkEventTracer::GetInstance() { if (SkEventTracer* tracer = sk_atomic_load(&gUserTracer, sk_memory_order_acquire)) { return tracer; } - return gDefaultTracer.get([]{ return new SkDefaultEventTracer; }); + static SkOnce once; + static SkDefaultEventTracer* defaultTracer; + once([] { defaultTracer = new SkDefaultEventTracer; }); + return defaultTracer; } |