SkAdvancedTypefaceMetrics: getAdvanceData uses std::function
Reduce templatedness.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1955053002
Review-Url: https://codereview.chromium.org/1955053002
diff --git a/tests/WArrayTest.cpp b/tests/WArrayTest.cpp
index 55f2a10..9a239fb 100644
--- a/tests/WArrayTest.cpp
+++ b/tests/WArrayTest.cpp
@@ -150,19 +150,17 @@
const int fSubsetLen;
const char* fExpected;
- static bool getAdvance(void* tc, int gId, int16_t* advance) {
- TestWData* testCase = (TestWData*)tc;
- if (gId >= 0 && gId < testCase->fAdvancesLen) {
- *advance = testCase->fAdvances[gId];
- return true;
- }
- return false;
- }
-
void runTest(skiatest::Reporter* reporter) {
SkAdvancedTypefaceMetrics metrics;
- metrics.setGlyphWidths((void*)this, fAdvancesLen, fSubset, fSubsetLen,
- getAdvance);
+ metrics.setGlyphWidths(
+ fAdvancesLen, fSubset, fSubsetLen,
+ std::function<bool(int, int16_t*)>([this](int gId, int16_t* advance) {
+ if (gId >= 0 && gId < fAdvancesLen) {
+ *advance = fAdvances[gId];
+ return true;
+ }
+ return false;
+ }));
SkString stringResult = stringify_advance_data(metrics.fGlyphWidths);
if (!stringResult.equals(fExpected)) {