diff options
author | bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-11 20:54:44 +0000 |
---|---|---|
committer | bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-11 20:54:44 +0000 |
commit | 33cdbdea3ddcec9323b65eace86e10557312ae9b (patch) | |
tree | 2ff097c7380f38e25b3160b26577e3e491e337f0 /gm | |
parent | b00d670114c29151f182256d7e915a874ebb2877 (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.cpp | 28 |
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); } }; |