diff options
author | 2017-01-03 13:32:36 -0500 | |
---|---|---|
committer | 2017-01-04 14:51:09 +0000 | |
commit | 3546ff10c2e1e91f5afe1efaab4e5e14f71689d1 (patch) | |
tree | cbcf83ae724df22c6cc5704a75be9095a28058db /src/ports/SkFontMgr_custom.cpp | |
parent | 8bc9f7b32867cb46fd7b56c11bf9dfa79a7d246e (diff) |
Stage SkFontMgr factories to return smart pointers.
All the SkFontMgr factories currently return bare pointers and sometimes
even document the ownership rules. Since such factories can be
implemented by external ports, the ownership rules should be explicit in
order to prevent simple reference counting issues.
Change-Id: I25b598ce0954cd473a3fb1f8adc0cb86331583ca
Reviewed-on: https://skia-review.googlesource.com/6533
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Diffstat (limited to 'src/ports/SkFontMgr_custom.cpp')
-rw-r--r-- | src/ports/SkFontMgr_custom.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ports/SkFontMgr_custom.cpp b/src/ports/SkFontMgr_custom.cpp index ada7d0b190..5cfdb081d6 100644 --- a/src/ports/SkFontMgr_custom.cpp +++ b/src/ports/SkFontMgr_custom.cpp @@ -420,9 +420,15 @@ private: SkString fBaseDirectory; }; +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_Custom_Directory(const char* dir) { return new SkFontMgr_Custom(DirectorySystemFontLoader(dir)); } +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_Custom_Directory(const char* dir) { + return sk_make_sp<SkFontMgr_Custom>(DirectorySystemFontLoader(dir)); +} +#endif /////////////////////////////////////////////////////////////////////////////// @@ -498,9 +504,15 @@ private: const SkEmbeddedResourceHeader* fHeader; }; +#ifdef SK_LEGACY_FONTMGR_FACTORY SkFontMgr* SkFontMgr_New_Custom_Embedded(const SkEmbeddedResourceHeader* header) { return new SkFontMgr_Custom(EmbeddedSystemFontLoader(header)); } +#else +sk_sp<SkFontMgr> SkFontMgr_New_Custom_Embedded(const SkEmbeddedResourceHeader* header) { + return sk_make_sp<SkFontMgr_Custom>(EmbeddedSystemFontLoader(header)); +} +#endif /////////////////////////////////////////////////////////////////////////////// @@ -518,6 +530,12 @@ public: }; +#ifdef SK_LEGACY_FONTMGR_FACTORY SK_API SkFontMgr* SkFontMgr_New_Custom_Empty() { return new SkFontMgr_Custom(EmptyFontLoader()); } +#else +SK_API sk_sp<SkFontMgr> SkFontMgr_New_Custom_Empty() { + return sk_make_sp<SkFontMgr_Custom>(EmptyFontLoader()); +} +#endif |