aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-11 20:54:44 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-11 20:54:44 +0000
commit33cdbdea3ddcec9323b65eace86e10557312ae9b (patch)
tree2ff097c7380f38e25b3160b26577e3e491e337f0 /gm
parentb00d670114c29151f182256d7e915a874ebb2877 (diff)
Fix leaks in blurrect benchs and gm.
Review URL: https://codereview.appspot.com/7071060 git-svn-id: http://skia.googlecode.com/svn/trunk@7142 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm')
-rw-r--r--gm/blurrect.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/gm/blurrect.cpp b/gm/blurrect.cpp
index 88863e604c..a06f62aa3d 100644
--- a/gm/blurrect.cpp
+++ b/gm/blurrect.cpp
@@ -140,11 +140,11 @@ class BlurRectCompareGM : public skiagm::GM {
unsigned int fRectWidth, fRectHeight;
SkScalar fRadius;
public:
- BlurRectCompareGM(const char name[], unsigned int rectWidth, unsigned int rectHeight, float radius) :
- fName(name)
- , fRectWidth( rectWidth )
- , fRectHeight( rectHeight )
- , fRadius( radius )
+ BlurRectCompareGM(const char name[], unsigned int rectWidth, unsigned int rectHeight, float radius)
+ : fName(name)
+ , fRectWidth(rectWidth)
+ , fRectHeight(rectHeight)
+ , fRadius(radius)
{}
int width() const { return fRectWidth; }
@@ -160,7 +160,7 @@ protected:
return SkISize::Make(640, 480);
}
- virtual void makeMask( SkMask *m, const SkRect& ) = 0;
+ virtual void makeMask(SkMask *m, const SkRect&) = 0;
virtual void onDraw(SkCanvas* canvas) {
SkRect r;
@@ -168,7 +168,8 @@ protected:
SkMask mask;
- makeMask(&mask, r);
+ this->makeMask(&mask, r);
+ SkAutoMaskFreeImage amfi(mask.fImage);
SkBitmap bm;
bm.setConfig(SkBitmap::kA8_Config, mask.fBounds.width(), mask.fBounds.height());
@@ -186,10 +187,10 @@ class BlurRectFastGM: public BlurRectCompareGM {
public:
BlurRectFastGM(const char name[], unsigned int rect_width,
unsigned int rect_height, float blur_radius) :
- BlurRectCompareGM( name, rect_width, rect_height, blur_radius ) {}
+ BlurRectCompareGM(name, rect_width, rect_height, blur_radius) {}
protected:
- virtual void makeMask( SkMask *m, const SkRect& r) SK_OVERRIDE {
- SkBlurMask::BlurRect( m, r, radius(), SkBlurMask::kNormal_Style,
+ virtual void makeMask(SkMask *m, const SkRect& r) SK_OVERRIDE {
+ SkBlurMask::BlurRect(m, r, radius(), SkBlurMask::kNormal_Style,
SkBlurMask::kHigh_Quality );
}
};
@@ -199,17 +200,18 @@ public:
BlurRectSlowGM(const char name[], unsigned int rect_width, unsigned int rect_height, float blur_radius) :
BlurRectCompareGM( name, rect_width, rect_height, blur_radius ) {}
protected:
- virtual void makeMask( SkMask *m, const SkRect& r) SK_OVERRIDE {
+ virtual void makeMask(SkMask *m, const SkRect& r) SK_OVERRIDE {
SkMask src;
r.roundOut(&src.fBounds);
src.fBounds.offset(-src.fBounds.fLeft, -src.fBounds.fTop); // move to origin
src.fFormat = SkMask::kA8_Format;
src.fRowBytes = src.fBounds.width();
src.fImage = SkMask::AllocImage( src.computeTotalImageSize() );
+ SkAutoMaskFreeImage amfi(src.fImage);
- memset( src.fImage, 0xff, src.computeTotalImageSize() );
+ memset(src.fImage, 0xff, src.computeTotalImageSize());
- SkBlurMask::BlurSeparable( m, src, radius()/2, SkBlurMask::kNormal_Style, SkBlurMask::kHigh_Quality );
+ SkBlurMask::BlurSeparable(m, src, radius()/2, SkBlurMask::kNormal_Style, SkBlurMask::kHigh_Quality);
}
};