Remove one static initializer in src/gpu/GrGpu.cpp
Review URL: https://codereview.appspot.com/5504073

git-svn-id: http://skia.googlecode.com/svn/trunk@3117 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp
index 39960de..5ec9948 100644
--- a/src/gpu/GrGpu.cpp
+++ b/src/gpu/GrGpu.cpp
@@ -343,15 +343,20 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
-// stencil settings to use when clip is in stencil
-GR_STATIC_CONST_SAME_STENCIL(gClipStencilSettings,
-    kKeep_StencilOp,
-    kKeep_StencilOp,
-    kAlwaysIfInClip_StencilFunc,
-    0x0000,
-    0x0000,
-    0x0000);
-const GrStencilSettings& GrGpu::gClipStencilSettings = ::gClipStencilSettings;
+const GrStencilSettings* GrGpu::GetClipStencilSettings(void) {
+    // stencil settings to use when clip is in stencil
+    // NOTE: This is thread-safe on Windows because the implementation of
+    // GR_STATIC_CONST_SAME_STENCIL simply updates a pointer to an already
+    // constructed constant structure.
+    GR_STATIC_CONST_SAME_STENCIL(sClipStencilSettings,
+        kKeep_StencilOp,
+        kKeep_StencilOp,
+        kAlwaysIfInClip_StencilFunc,
+        0x0000,
+        0x0000,
+        0x0000);
+    return &sClipStencilSettings;
+}
 
 // mapping of clip-respecting stencil funcs to normal stencil funcs
 // mapping depends on whether stencil-clipping is in effect.
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index e617efb..37d1fcf 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -355,7 +355,7 @@
 
     // stencil settings to clip drawing when stencil clipping is in effect
     // and the client isn't using the stencil test.
-    static const GrStencilSettings& gClipStencilSettings;
+    static const GrStencilSettings* GetClipStencilSettings(void);
 
     GrGpuStats fStats;
 
diff --git a/src/gpu/GrGpuGL.cpp b/src/gpu/GrGpuGL.cpp
index 70d28d6..df578c9 100644
--- a/src/gpu/GrGpuGL.cpp
+++ b/src/gpu/GrGpuGL.cpp
@@ -1776,7 +1776,7 @@
 
         if (settings->isDisabled()) {
             if (stencilClip) {
-                settings = &gClipStencilSettings;
+                settings = GetClipStencilSettings();
             }
         }