aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2014-08-25 12:00:49 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-25 12:00:49 -0700
commita6785ccb540b1b752ab536cdf579a698eadbf7d2 (patch)
tree475c911f255876f32a25aa365522d8e9331170a1 /include
parent5fc226641a0926dddbf70ba784f344881f4c05b9 (diff)
Add a working SkFontMgr_fontconfig.
R=tomhudson@google.com, reed@google.com, mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/396143004
Diffstat (limited to 'include')
-rw-r--r--include/core/SkTemplates.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/core/SkTemplates.h b/include/core/SkTemplates.h
index 5d3fa2d10c..434fcb8c0e 100644
--- a/include/core/SkTemplates.h
+++ b/include/core/SkTemplates.h
@@ -77,7 +77,19 @@ template <typename T, void (*P)(T*)> class SkAutoTCallVProc : SkNoncopyable {
public:
SkAutoTCallVProc(T* obj): fObj(obj) {}
~SkAutoTCallVProc() { if (fObj) P(fObj); }
+
+ operator T*() const { return fObj; }
+ T* operator->() const { SkASSERT(fObj); return fObj; }
+
T* detach() { T* obj = fObj; fObj = NULL; return obj; }
+ void reset(T* obj = NULL) {
+ if (fObj != obj) {
+ if (fObj) {
+ P(fObj);
+ }
+ fObj = obj;
+ }
+ }
private:
T* fObj;
};