aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ben Wagner <bungeman@google.com>2016-10-19 17:15:44 -0400
committerGravatar Mike Klein <mtklein@chromium.org>2016-10-19 21:41:00 +0000
commite1d6ff172e219d3be61949b0e44091f4c85de2ad (patch)
tree3dd2914495b6c54dcfbbdaea7b136ba0609d4bf9 /src
parentf4ace0124f408aa52d111f6ed30ac80833d00c9a (diff)
Class delete call unsized delete when size not known.
Some classes directly call global operator new to reserve space in addition to the space the class will occupy. These clases must be deleted with the unsized global operator new. If a build is configured such that sized global operator new is called from a delete expression, this must be overridden by such classes. TBR=reed Only affects private bits of SkData. Change-Id: I797935db17a37aa8c2ca7b562a4ea65a7978a9f0 Reviewed-on: https://skia-review.googlesource.com/3678 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkDescriptor.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/SkDescriptor.h b/src/core/SkDescriptor.h
index 0f859137b0..0e91c3c2cf 100644
--- a/src/core/SkDescriptor.h
+++ b/src/core/SkDescriptor.h
@@ -25,6 +25,9 @@ public:
return std::unique_ptr<SkDescriptor>(static_cast<SkDescriptor*>(::operator new (length)));
}
+ // Ensure the unsized delete is called.
+ void operator delete(void* p) { ::operator delete(p); }
+
void init() {
fLength = sizeof(SkDescriptor);
fCount = 0;