Chromium Code Reviews| Index: src/core/SkDraw.cpp |
| diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp |
| index 112451920f2bdf0a7e6f21198fded5a2d4832347..aa91df3df557bfc83d2cb5539933400491ac2c3d 100644 |
| --- a/src/core/SkDraw.cpp |
| +++ b/src/core/SkDraw.cpp |
| @@ -65,7 +65,13 @@ public: |
| fStorage, sizeof(fStorage), drawCoverage); |
| } |
| - ~SkAutoBlitterChoose(); |
| + ~SkAutoBlitterChoose() { |
|
reed1
2013/11/15 18:20:12
Not sure its strictly required for this guy either
|
| + if ((void*)fBlitter == (void*)fStorage) { |
| + fBlitter->~SkBlitter(); |
| + } else { |
| + SkDELETE(fBlitter); |
| + } |
| + } |
| SkBlitter* operator->() { return fBlitter; } |
| SkBlitter* get() const { return fBlitter; } |
| @@ -81,14 +87,7 @@ private: |
| SkBlitter* fBlitter; |
| uint32_t fStorage[kBlitterStorageLongCount]; |
| }; |
| - |
| -SkAutoBlitterChoose::~SkAutoBlitterChoose() { |
| - if ((void*)fBlitter == (void*)fStorage) { |
| - fBlitter->~SkBlitter(); |
| - } else { |
| - SkDELETE(fBlitter); |
| - } |
| -} |
| +#define SkAutoBlitterChoose(...) SK_REQUIRE_LOCAL_VAR(SkAutoBlitterChoose) |
| /** |
| * Since we are providing the storage for the shader (to avoid the perf cost |
| @@ -128,6 +127,7 @@ private: |
| SkPaint fPaint; // copy of caller's paint (which we then modify) |
| uint32_t fStorage[kBlitterStorageLongCount]; |
| }; |
| +#define SkAutoBitmapShaderInstall(...) SK_REQUIRE_LOCAL_VAR(SkAutoBitmapShaderInstall) |
| /////////////////////////////////////////////////////////////////////////////// |