diff options
author | bsalomon <bsalomon@google.com> | 2016-07-27 08:58:31 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-27 08:58:31 -0700 |
commit | bb0ab4df70a5e30052a39570de833ad0c6e9e701 (patch) | |
tree | 639c935d6ad58d94ec70bb33bbdc1eb01aaa63d1 | |
parent | 7b2ed4c64923445893841b5daa4f87c34aeef860 (diff) |
Fix leak of srgb/adobesrgb colorspace objects
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2185043002
Review-Url: https://codereview.chromium.org/2185043002
-rw-r--r-- | src/core/SkColorSpace.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp index ba278dfcd6..211a88b9d7 100644 --- a/src/core/SkColorSpace.cpp +++ b/src/core/SkColorSpace.cpp @@ -127,27 +127,27 @@ sk_sp<SkColorSpace> SkColorSpace::NewRGB(GammaNamed gammaNamed, const SkMatrix44 sk_sp<SkColorSpace> SkColorSpace::NewNamed(Named named) { static SkOnce sRGBOnce; - static SkColorSpace* sRGB; + static sk_sp<SkColorSpace> sRGB; static SkOnce adobeRGBOnce; - static SkColorSpace* adobeRGB; + static sk_sp<SkColorSpace> adobeRGB; switch (named) { case kSRGB_Named: { sRGBOnce([] { SkMatrix44 srgbToxyzD50(SkMatrix44::kUninitialized_Constructor); srgbToxyzD50.set3x3RowMajorf(gSRGB_toXYZD50); - sRGB = new SkColorSpace_Base(kSRGB_GammaNamed, srgbToxyzD50, kSRGB_Named); + sRGB.reset(new SkColorSpace_Base(kSRGB_GammaNamed, srgbToxyzD50, kSRGB_Named)); }); - return sk_ref_sp(sRGB); + return sRGB; } case kAdobeRGB_Named: { adobeRGBOnce([] { SkMatrix44 adobergbToxyzD50(SkMatrix44::kUninitialized_Constructor); adobergbToxyzD50.set3x3RowMajorf(gAdobeRGB_toXYZD50); - adobeRGB = new SkColorSpace_Base(k2Dot2Curve_GammaNamed, adobergbToxyzD50, - kAdobeRGB_Named); + adobeRGB.reset(new SkColorSpace_Base(k2Dot2Curve_GammaNamed, adobergbToxyzD50, + kAdobeRGB_Named)); }); - return sk_ref_sp(adobeRGB); + return adobeRGB; } default: break; |