Bug 12039

Summary: Assertion failure in WebCore::Font::primaryFont
Product: WebKit Reporter: Mark Rowe (bdash) <mrowe>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Major CC: mitz
Priority: P1 Keywords: HasReduction, InRadar
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
Attachments:
Description Flags
Fix mjs: review+

Mark Rowe (bdash)
Reported 2006-12-31 00:18:53 PST
<html> <head> <title>Test HTML Page</title> <style type="text/css"> * { font: initial; } </style> </head> <body> <h1>This is the HTML page</h1> <p>This is some content on the page.</p> </body> </html> Fails assertion of: assert(m_fontList); (gdb) bt #0 0x9003d1dc in kill () #1 0x9010f2af in raise () #2 0x9010de02 in abort () #3 0x013e2419 in __eprintf () at Vector.h:-1 #4 0x0121842d in WebCore::Font::primaryFont (this=0x170ab500) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/Font.cpp:359 #5 0x012188d1 in WebCore::WidthIterator::advance (this=0xbfff55dc, offset=21, glyphBuffer=0xbfff5654) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/Font.cpp:140 #6 0x012197ee in WebCore::Font::floatWidthForSimpleText (this=0x170ab500, run=@0xbfffc818, style=@0xbfffc790, substituteFont=0x0, startPosition=0xbfffc680, glyphBuffer=0xbfff5654) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/Font.cpp:550 #7 0x01219c4b in WebCore::Font::drawSimpleText (this=0x170ab500, context=0xbfffd094, run=@0xbfffc818, style=@0xbfffc790, point=@0xbfffc708) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/Font.cpp:494 #8 0x01219eb3 in WebCore::Font::drawText (this=0x170ab500, context=0xbfffd094, run=@0xbfffc818, style=@0xbfffc790, point=@0xbfffc708) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/Font.cpp:532 #9 0x0139e33a in WebCore::GraphicsContext::drawText (this=0xbfffd094, run=@0xbfffc818, point=@0xbfffc810, style=@0xbfffc790) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/platform/graphics/GraphicsContext.cpp:215 #10 0x0114e095 in WebCore::InlineTextBox::paint (this=0x1708ab2c, paintInfo=@0xbfffc93c, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/InlineTextBox.cpp:415 #11 0x0129a5cb in WebCore::InlineFlowBox::paint (this=0x18dda9dc, paintInfo=@0xbfffca30, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/InlineFlowBox.cpp:583 #12 0x0129b56f in WebCore::RootInlineBox::paint (this=0x18dda9dc, paintInfo=@0xbfffca30, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RootInlineBox.cpp:136 #13 0x01174313 in WebCore::RenderFlow::paintLines (this=0x1709399c, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderFlow.cpp:395 #14 0x0115925e in WebCore::RenderBlock::paintObject (this=0x1709399c, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1367 #15 0x01151e89 in WebCore::RenderBlock::paint (this=0x1709399c, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285 #16 0x011521bf in WebCore::RenderBlock::paintChildren (this=0x1701970c, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1315 #17 0x01159280 in WebCore::RenderBlock::paintObject (this=0x1701970c, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1369 #18 0x01151e89 in WebCore::RenderBlock::paint (this=0x1701970c, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285 #19 0x011521bf in WebCore::RenderBlock::paintChildren (this=0x170b5b1c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1315 #20 0x01159280 in WebCore::RenderBlock::paintObject (this=0x170b5b1c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1369 #21 0x01151e89 in WebCore::RenderBlock::paint (this=0x170b5b1c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285 #22 0x01180a38 in WebCore::RenderLayer::paintLayer (this=0x17060eec, rootLayer=0x170f655c, p=0xbfffd094, paintDirtyRect=@0xbfffd09c, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1438 #23 0x01180bfc in WebCore::RenderLayer::paintLayer (this=0x170f655c, rootLayer=0x170f655c, p=0xbfffd094, paintDirtyRect=@0xbfffd09c, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1463 #24 0x01180cc4 in WebCore::RenderLayer::paint (this=0x170f655c, p=0xbfffd094, damageRect=@0xbfffd09c, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1330 #25 0x010dfc7b in WebCore::Frame::paint (this=0x299ca00, p=0xbfffd094, rect=@0xbfffd09c) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/page/Frame.cpp:1041 #26 0x01100429 in -[WebCoreFrameBridge drawRect:] (self=0x299c590, _cmd=0x90aa2b6c, rect={origin = {x = 0, y = 0}, size = {width = 1415, height = 761}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/page/mac/WebCoreFrameBridge.mm:480 #27 0x00341fbf in -[WebHTMLView drawSingleRect:] (self=0x17018c10, _cmd=0x3c3308, rect={origin = {x = 0, y = 0}, size = {width = 1415, height = 761}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:2678 #28 0x00342395 in -[WebHTMLView drawRect:] (self=0x17018c10, _cmd=0x90aa2b6c, rect={origin = {x = 0, y = 0}, size = {width = 1415, height = 761}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:2729 #29 0x932ee3b1 in -[NSView _drawRect:clip:] () #30 0x932ed40b in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] () #31 0x0033bd2f in -[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:] (self=0x17018c10, _cmd=0x90a83574, needsLockFocus=1 '\001', visRect={origin = {x = 0, y = 0}, size = {width = 1415, height = 761}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:893 #32 0x932ff36f in _recursiveDisplayInRect2 () #33 0x9083af26 in CFArrayApplyFunction () #34 0x932ed613 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] () #35 0x932ff36f in _recursiveDisplayInRect2 () #36 0x9083af26 in CFArrayApplyFunction () #37 0x932ed613 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] () #38 0x932ec473 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #39 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #40 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #41 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #42 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #43 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #44 0x932ebb78 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] () #45 0x932eb362 in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] () #46 0x932eac8e in -[NSView displayIfNeeded] () #47 0x932eaa32 in -[NSWindow displayIfNeeded] () #48 0x0001c394 in ?? () #49 0x9333ad6c in _handleWindowNeedsDisplay () #50 0x9082a155 in __CFRunLoopDoObservers () #51 0x908291f7 in CFRunLoopRunSpecific () #52 0x90828eb5 in CFRunLoopRunInMode () #53 0x92dcdb90 in RunCurrentEventLoopInMode () #54 0x92dcd297 in ReceiveNextEventCommon () #55 0x92dcd0ee in BlockUntilNextEventMatchingListInMode () #56 0x9326f465 in _DPSNextEvent () #57 0x9326f056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] () #58 0x00006f96 in ?? () #59 0x93268ddb in -[NSApplication run] () #60 0x9325cd2f in NSApplicationMain () #61 0x0005f7de in ?? () #62 0x0005f6f9 in ?? ()
Attachments
Fix (21.78 KB, patch)
2007-01-17 01:00 PST, mitz
mjs: review+
Mark Rowe (bdash)
Comment 1 2007-01-16 19:28:59 PST
mitz
Comment 2 2007-01-17 01:00:13 PST
Created attachment 12498 [details] Fix There are two more elegant solutions that I could think of, both entailing more work in all cases: adding m_fontList to Font's operator==, or adding a call to Font::update() in the GraphicsContextState constructor.
Maciej Stachowiak
Comment 3 2007-01-17 01:32:10 PST
Comment on attachment 12498 [details] Fix r=me
Mark Rowe (bdash)
Comment 4 2007-01-18 17:41:16 PST
Landed in r18971.
Note You need to log in before you can comment on or make changes to this bug.