| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2009-2015 Google Inc. | 2 * Copyright 2009-2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 /* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */ | 8 /* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */ |
| 9 | 9 |
| 10 #include "SkBuffer.h" | 10 #include "SkBuffer.h" |
| (...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 static bool find_name(const SkTDArray<const char*>& list, const char* str) { | 691 static bool find_name(const SkTDArray<const char*>& list, const char* str) { |
| 692 int count = list.count(); | 692 int count = list.count(); |
| 693 for (int i = 0; i < count; ++i) { | 693 for (int i = 0; i < count; ++i) { |
| 694 if (!strcmp(list[i], str)) { | 694 if (!strcmp(list[i], str)) { |
| 695 return true; | 695 return true; |
| 696 } | 696 } |
| 697 } | 697 } |
| 698 return false; | 698 return false; |
| 699 } | 699 } |
| 700 | 700 |
| 701 SkDataTable* SkFontConfigInterfaceDirect::getFamilyNames() { | 701 sk_sp<SkDataTable> SkFontConfigInterfaceDirect::getFamilyNames() { |
| 702 FCLocker lock; | 702 FCLocker lock; |
| 703 | 703 |
| 704 FcPattern* pat = FcPatternCreate(); | 704 FcPattern* pat = FcPatternCreate(); |
| 705 SkAutoTCallVProc<FcPattern, FcPatternDestroy> autoDestroyPat(pat); | 705 SkAutoTCallVProc<FcPattern, FcPatternDestroy> autoDestroyPat(pat); |
| 706 if (nullptr == pat) { | 706 if (nullptr == pat) { |
| 707 return nullptr; | 707 return nullptr; |
| 708 } | 708 } |
| 709 | 709 |
| 710 FcObjectSet* os = FcObjectSetBuild(FC_FAMILY, (char *)0); | 710 FcObjectSet* os = FcObjectSetBuild(FC_FAMILY, (char *)0); |
| 711 SkAutoTCallVProc<FcObjectSet, FcObjectSetDestroy> autoDestroyOs(os); | 711 SkAutoTCallVProc<FcObjectSet, FcObjectSetDestroy> autoDestroyOs(os); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 723 SkTDArray<size_t> sizes; | 723 SkTDArray<size_t> sizes; |
| 724 for (int i = 0; i < fs->nfont; ++i) { | 724 for (int i = 0; i < fs->nfont; ++i) { |
| 725 FcPattern* match = fs->fonts[i]; | 725 FcPattern* match = fs->fonts[i]; |
| 726 const char* famName = get_name(match, FC_FAMILY); | 726 const char* famName = get_name(match, FC_FAMILY); |
| 727 if (famName && !find_name(names, famName)) { | 727 if (famName && !find_name(names, famName)) { |
| 728 *names.append() = famName; | 728 *names.append() = famName; |
| 729 *sizes.append() = strlen(famName) + 1; | 729 *sizes.append() = strlen(famName) + 1; |
| 730 } | 730 } |
| 731 } | 731 } |
| 732 | 732 |
| 733 return SkDataTable::NewCopyArrays((const void*const*)names.begin(), | 733 return SkDataTable::MakeCopyArrays((const void*const*)names.begin(), |
| 734 sizes.begin(), names.count()); | 734 sizes.begin(), names.count()); |
| 735 } | 735 } |
| OLD | NEW |