| Index: src/core/SkColorSpace.cpp
 | 
| diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp
 | 
| index 55ab4c177a57f77a57e09989f6ea584436262d54..889746f41bef471546e41323aac5a4d67860fbaf 100644
 | 
| --- a/src/core/SkColorSpace.cpp
 | 
| +++ b/src/core/SkColorSpace.cpp
 | 
| @@ -7,7 +7,7 @@
 | 
|  
 | 
|  #include "SkAtomics.h"
 | 
|  #include "SkColorSpace.h"
 | 
| -#include "SkOncePtr.h"
 | 
| +#include "SkOnce.h"
 | 
|  
 | 
|  static bool color_space_almost_equal(float a, float b) {
 | 
|      return SkTAbs(a - b) < 0.01f;
 | 
| @@ -42,8 +42,6 @@
 | 
|      0.3853f, 0.7170f, 0.0971f,    // * G
 | 
|      0.1430f, 0.0606f, 0.7139f,    // * B
 | 
|  };
 | 
| -
 | 
| -SK_DECLARE_STATIC_ONCE_PTR(SkColorSpace, sRGB);
 | 
|  
 | 
|  sk_sp<SkColorSpace> SkColorSpace::NewRGB(SkGammas gammas, const SkMatrix44& toXYZD50) {
 | 
|      // Check if we really have sRGB
 | 
| @@ -74,13 +72,17 @@
 | 
|  }
 | 
|  
 | 
|  sk_sp<SkColorSpace> SkColorSpace::NewNamed(Named named) {
 | 
| +    static SkOnce once;
 | 
| +    static SkColorSpace* sRGB;
 | 
| +
 | 
|      switch (named) {
 | 
|          case kSRGB_Named: {
 | 
| -            SkMatrix44 srgbToxyzD50(SkMatrix44::kUninitialized_Constructor);
 | 
| -            srgbToxyzD50.set3x3ColMajorf(gSRGB_toXYZD50);
 | 
| -            return sk_ref_sp(sRGB.get([=]{
 | 
| -                return new SkColorSpace(SkGammas(2.2f, 2.2f, 2.2f), srgbToxyzD50, kSRGB_Named);
 | 
| -            }));
 | 
| +            once([] {
 | 
| +                SkMatrix44 srgbToxyzD50(SkMatrix44::kUninitialized_Constructor);
 | 
| +                srgbToxyzD50.set3x3ColMajorf(gSRGB_toXYZD50);
 | 
| +                sRGB = new SkColorSpace(SkGammas(2.2f, 2.2f, 2.2f), srgbToxyzD50, kSRGB_Named);
 | 
| +            });
 | 
| +            return sk_ref_sp(sRGB);
 | 
|          }
 | 
|          default:
 | 
|              break;
 | 
| 
 |