Bug 39050 - Move transient glyph overflow and fallback font data from a global to the stack
Summary: Move transient glyph overflow and fallback font data from a global to the stack
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: mitz
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-12 23:37 PDT by mitz
Modified: 2010-05-16 21:06 PDT (History)
4 users (show)

See Also:


Attachments
Use a stack-based GlyphOverflowAndFallbackFontsMap (21.62 KB, patch)
2010-05-12 23:47 PDT, mitz
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mitz 2010-05-12 23:37:46 PDT
The way the lifetime of fallback font vectors and glyph overflow structures associated with text boxes is managed during layout is quite fragile. The data are inserted into a global map by one method, then consumed and removed by other methods. Instead, the map can be kept on the stack for the duration of line layout. Patch forthcoming.
Comment 1 mitz 2010-05-12 23:47:31 PDT
Created attachment 55950 [details]
Use a stack-based GlyphOverflowAndFallbackFontsMap
Comment 2 Darin Adler 2010-05-13 14:19:05 PDT
Comment on attachment 55950 [details]
Use a stack-based GlyphOverflowAndFallbackFontsMap

> +                                             int& maxAscent, int& maxDescent, bool strictMode, GlyphOverflowAndFallbackFontsMap& glyphOverflowAndFallbackFontsMap)

Can we give this argument a shorter less-precise name, perhaps overflowMap or fallbackMap or extrasMap or exceptionsMap?
Comment 3 Adam Barth 2010-05-14 23:31:32 PDT
Attachment 55950 [details] was posted by a committer and has review+, assigning to Dan Bernstein for commit.
Comment 4 mitz 2010-05-16 18:45:09 PDT
Fixed in <http://trac.webkit.org/projects/webkit/changeset/59588>.
Comment 5 WebKit Review Bot 2010-05-16 18:58:09 PDT
http://trac.webkit.org/changeset/59588 might have broken Qt Windows 32-bit Release
Comment 6 Tony Chang 2010-05-16 19:33:32 PDT
This is causing 2 tests to fail on the mac bots and the chromium bots:
svg/custom/pointer-events-text.svg
svg/custom/use-events-crash.svg
Comment 7 mitz 2010-05-16 19:51:17 PDT
(In reply to comment #6)
> This is causing 2 tests to fail on the mac bots and the chromium bots:
> svg/custom/pointer-events-text.svg
> svg/custom/use-events-crash.svg

I’ll fix that.
Comment 8 mitz 2010-05-16 20:04:08 PDT
in r59589
Comment 9 Adam Barth 2010-05-16 21:06:01 PDT
(In reply to comment #5)
> http://trac.webkit.org/changeset/59588 might have broken Qt Windows 32-bit Release

Looks like a compile failure due to an ICE:


..\..\..\WebCore\dom\Document.cpp: In member function 'void WebCore::Document::addElementById(const WebCore::AtomicString&, WebCore::Element*)':
..\..\..\WebCore\dom\Document.cpp:1074:6: internal compiler error: Segmentation fault