summaryrefslogtreecommitdiff
path: root/external/skia/fontconfig-get-typeface.patch.0
diff options
context:
space:
mode:
Diffstat (limited to 'external/skia/fontconfig-get-typeface.patch.0')
-rw-r--r--external/skia/fontconfig-get-typeface.patch.050
1 files changed, 29 insertions, 21 deletions
diff --git a/external/skia/fontconfig-get-typeface.patch.0 b/external/skia/fontconfig-get-typeface.patch.0
index a7a82bfa07f4..20c3f5b9cbe0 100644
--- a/external/skia/fontconfig-get-typeface.patch.0
+++ b/external/skia/fontconfig-get-typeface.patch.0
@@ -1,32 +1,40 @@
---- ./src/ports/SkFontMgr_fontconfig.cpp.sav 2020-01-20 16:42:51.322186451 +0100
-+++ ./src/ports/SkFontMgr_fontconfig.cpp 2020-03-13 11:25:15.793936659 +0100
-@@ -699,6 +699,7 @@ class SkFontMgr_fontconfig : public SkFo
+diff --git a/include/ports/SkFontMgr_fontconfig.h b/include/ports/SkFontMgr_fontconfig.h
+index 4b2bb2d297..2b82cbfedd 100644
+--- include/ports/SkFontMgr_fontconfig.h
++++ include/ports/SkFontMgr_fontconfig.h
+@@ -19,4 +19,9 @@ class SkFontMgr;
+ */
+ SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc);
+
++struct _FcPattern;
++typedef struct _FcPattern FcPattern;
++class SkTypeface;
++SK_API sk_sp<SkTypeface> SkFontMgr_createTypefaceFromFcPattern(const sk_sp<SkFontMgr>& mgr, FcPattern* pattern);
++
+ #endif // #ifndef SkFontMgr_fontconfig_DEFINED
+diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp
+index c2da39b28f..28483faf02 100644
+--- src/ports/SkFontMgr_fontconfig.cpp
++++ src/ports/SkFontMgr_fontconfig.cpp
+@@ -690,6 +690,7 @@ class SkFontMgr_fontconfig : public SkFontMgr {
/** Creates a typeface using a typeface cache.
* @param pattern a complete pattern from FcFontRenderPrepare.
*/
+public:
- sk_sp<SkTypeface> createTypefaceFromFcPattern(FcPattern* pattern) const {
- FCLocker::AssertHeld();
- SkAutoMutexExclusive ama(fTFCacheMutex);
-@@ -1039,3 +1040,9 @@ protected:
+ sk_sp<SkTypeface> createTypefaceFromFcPattern(SkAutoFcPattern pattern) const {
+ if (!pattern) {
+ return nullptr;
+@@ -1043,3 +1044,13 @@ protected:
SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc) {
return sk_make_sp<SkFontMgr_fontconfig>(fc);
}
+
+SK_API sk_sp<SkTypeface> SkFontMgr_createTypefaceFromFcPattern(const sk_sp<SkFontMgr>& mgr, FcPattern* pattern)
+{
-+ FCLocker lock;
-+ return static_cast<SkFontMgr_fontconfig*>(mgr.get())->createTypefaceFromFcPattern(pattern);
++ SkAutoFcPattern p([pattern]() {
++ FCLocker lock;
++ FcPatternReference(pattern);
++ return pattern;
++ }());
++ return static_cast<SkFontMgr_fontconfig*>(mgr.get())->createTypefaceFromFcPattern(std::move(p));
+}
---- ./include/ports/SkFontMgr_fontconfig.h.sav 2019-09-19 11:38:00.943185323 +0200
-+++ ./include/ports/SkFontMgr_fontconfig.h 2020-03-13 11:31:48.025716543 +0100
-@@ -19,4 +19,9 @@ class SkFontMgr;
- */
- SK_API sk_sp<SkFontMgr> SkFontMgr_New_FontConfig(FcConfig* fc);
-
-+struct _FcPattern;
-+typedef struct _FcPattern FcPattern;
-+class SkTypeface;
-+SK_API sk_sp<SkTypeface> SkFontMgr_createTypefaceFromFcPattern(const sk_sp<SkFontMgr>& mgr, FcPattern* pattern);
-+
- #endif // #ifndef SkFontMgr_fontconfig_DEFINED