[Webkit-unassigned] [Bug 119318] New: Optimize Font CodePath selection and more unit testing

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jul 30 21:31:41 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=119318

           Summary: Optimize Font CodePath selection and more unit testing
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Keywords: BlinkMergeCandidate
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: rniwa at webkit.org
                CC: mitz at webkit.org, dino at apple.com, enrica at apple.com


Consider merging https://chromium.googlesource.com/chromium/blink/+/27b957eb64988bb40a244deb856dd3185cb36c03

Replaces the long sequences of if statements in Font::characterRangeCodePath, Font::isCJKIdeograph and Font::isCJKIdeographOrSymbol
with a hash set and/or binary tree lookup (with a little bit of early out and surrogate glyph
testing).

Also here is additional unit testing for these font code path checks.

Perf tests show no regression and no speedup, although we are unlikely to have much perf coverage of these glyphs, if any. I don't see how we could possible be slower for most cases, and we would only be slower in complex cases if the glyphs happen to hit one of the early if tests. Note that in the old code, Font::isCJKIdeograph and Font::isCJKIdeographOrSymbol went through every if statement before returning false, despite the fact that the bulk of common glyphs could be trivially rejected as being lower than any of the ranges.

There is an obvious error at the very end of
Font::isCJKIdeographOrSymbol which is fixed in this patch.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list