Index: src/core/SkDescriptor.h |
diff --git a/src/core/SkDescriptor.h b/src/core/SkDescriptor.h |
index 22ec29316fd30094ed6ad36cff8150acde8808cd..4df5d8fcc287c186ff36fb48a1fb4744929bdf4c 100644 |
--- a/src/core/SkDescriptor.h |
+++ b/src/core/SkDescriptor.h |
@@ -134,12 +134,9 @@ private: |
class SkAutoDescriptor : SkNoncopyable { |
public: |
+ SkAutoDescriptor() : fDesc(NULL) {} |
SkAutoDescriptor(size_t size) { |
- if (size <= sizeof(fStorage)) { |
- fDesc = (SkDescriptor*)(void*)fStorage; |
- } else { |
- fDesc = SkDescriptor::Alloc(size); |
- } |
+ this->reset(size); |
} |
~SkAutoDescriptor() { |
@@ -148,7 +145,15 @@ public: |
} |
} |
- SkDescriptor* getDesc() const { return fDesc; } |
+ void reset(size_t size) { |
+ if (size <= sizeof(fStorage)) { |
bsalomon
2015/03/31 21:19:10
don't you need to free the old one here?
joshualitt
2015/04/01 13:21:17
Acknowledged.
|
+ fDesc = (SkDescriptor*)(void*)fStorage; |
+ } else { |
+ fDesc = SkDescriptor::Alloc(size); |
+ } |
+ } |
+ |
+ SkDescriptor* getDesc() const { SkASSERT(fDesc); return fDesc; } |
private: |
enum { |
kStorageSize = sizeof(SkDescriptor) |