[Webkit-unassigned] [Bug 139905] REGRESSION(r177637) [HarfBuzz][GTK][EFL] It made 3 performance tests crash and +24 layout tests crashes/failures

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 8 03:30:08 PST 2015


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

--- Comment #5 from Carlos Garcia Campos <cgarcia at igalia.com> ---
(In reply to comment #4)
> One of the issues is that before r177637
> WebCore::FontGlyphs::glyphDataForCharacter returned sometimes
> missingGlyphData() and now (after r177637 and r177876) instead returns a
> null GlyphData(), therefore the crash on
> WebCore::HarfBuzzShaper::collectHarfBuzzRuns().
> 
> 
> I tried this patch:
> 
> --- a/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
> +++ b/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
> @@ -410,6 +410,8 @@ bool HarfBuzzShaper::collectHarfBuzzRuns()
>      do {
>          const UChar* currentCharacterPosition = iterator.characters();
>          const SimpleFontData* currentFontData = nextFontData;
> +        if (!currentFontData)
> +            break;
>          UScriptCode currentScript = nextScript;
>  
>          for (iterator.advance(clusterLength); iterator.consume(character,
> clusterLength); iterator.advance(clusterLength)) {
> 
> 
> And it fixes the crashes. The performance tests seems to work back and a few
> of the reported failing layout test pass.
> *But* there are still many layout tests failing (16 of 24).

Yes, that's because we render the missing glyph (a square) and breaking the loop we don't render any glyph. That should advance the iterator and continue the loop instead of break, but still the missing characters wouldn't be rendered at all. If we want to keep rendering the missing glyphs as squares we need to use a fallback font I guess.

> So it is an
> incomplete fix. Looking at the diffs of the results, seems that the width of
> the text run is 0.
> 
> 
> I hope this information can be useful.
> 
> I'm not planning to work on this anytime soon, so feel free to pick it.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150108/f5cab349/attachment-0002.html>


More information about the webkit-unassigned mailing list