RESOLVED FIXED39050
Move transient glyph overflow and fallback font data from a global to the stack
https://bugs.webkit.org/show_bug.cgi?id=39050
Summary Move transient glyph overflow and fallback font data from a global to the stack
mitz
Reported 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.
Attachments
Use a stack-based GlyphOverflowAndFallbackFontsMap (21.62 KB, patch)
2010-05-12 23:47 PDT, mitz
darin: review+
mitz
Comment 1 2010-05-12 23:47:31 PDT
Created attachment 55950 [details] Use a stack-based GlyphOverflowAndFallbackFontsMap
Darin Adler
Comment 2 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?
Adam Barth
Comment 3 2010-05-14 23:31:32 PDT
Attachment 55950 [details] was posted by a committer and has review+, assigning to Dan Bernstein for commit.
mitz
Comment 4 2010-05-16 18:45:09 PDT
WebKit Review Bot
Comment 5 2010-05-16 18:58:09 PDT
http://trac.webkit.org/changeset/59588 might have broken Qt Windows 32-bit Release
Tony Chang
Comment 6 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
mitz
Comment 7 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.
mitz
Comment 8 2010-05-16 20:04:08 PDT
Adam Barth
Comment 9 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
Note You need to log in before you can comment on or make changes to this bug.