aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-07-27 08:58:31 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-27 08:58:31 -0700
commitbb0ab4df70a5e30052a39570de833ad0c6e9e701 (patch)
tree639c935d6ad58d94ec70bb33bbdc1eb01aaa63d1
parent7b2ed4c64923445893841b5daa4f87c34aeef860 (diff)
Fix leak of srgb/adobesrgb colorspace objects
-rw-r--r--src/core/SkColorSpace.cpp14
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;