| Index: src/ports/SkMutex_win.h
|
| diff --git a/src/ports/SkMutex_win.h b/src/ports/SkMutex_win.h
|
| index d12fd033f3d6d6a457d1b9022987572f8be9690f..d84b0e42fd0da5fe0607544c6453001283d62a03 100644
|
| --- a/src/ports/SkMutex_win.h
|
| +++ b/src/ports/SkMutex_win.h
|
| @@ -31,15 +31,17 @@
|
| #endif
|
|
|
| // On Windows, SkBaseMutex and SkMutex are the same thing,
|
| -// we can't easily get rid of static initializers.
|
| -class SkMutex {
|
| +// we can't easily get rid of static initializers. However,
|
| +// we preserve the same inheritance pattern as other platforms
|
| +// so that we can forward-declare cleanly.
|
| +struct SkBaseMutex {
|
| public:
|
| - SkMutex() {
|
| + SkBaseMutex() {
|
| InitializeCriticalSection(&fStorage);
|
| SkDEBUGCODE(fOwner = 0;)
|
| }
|
|
|
| - ~SkMutex() {
|
| + ~SkBaseMutex() {
|
| SkASSERT(0 == fOwner);
|
| DeleteCriticalSection(&fStorage);
|
| }
|
| @@ -59,15 +61,16 @@ public:
|
| SkASSERT(GetCurrentThreadId() == fOwner);
|
| }
|
|
|
| -private:
|
| - SkMutex(const SkMutex&);
|
| - SkMutex& operator=(const SkMutex&);
|
| -
|
| +protected:
|
| CRITICAL_SECTION fStorage;
|
| SkDEBUGCODE(DWORD fOwner;)
|
| +
|
| +private:
|
| + SkBaseMutex(const SkBaseMutex&);
|
| + SkBaseMutex& operator=(const SkBaseMutex&);
|
| };
|
|
|
| -typedef SkMutex SkBaseMutex;
|
| +class SkMutex : public SkBaseMutex { };
|
|
|
| // Windows currently provides no documented means of POD initializing a CRITICAL_SECTION.
|
| #define SK_DECLARE_STATIC_MUTEX(name) static SkBaseMutex name
|
|
|