Bug 12039 - Assertion failure in WebCore::Font::primaryFont
Summary: Assertion failure in WebCore::Font::primaryFont
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P1 Major
Assignee: Nobody
URL:
Keywords: HasReduction, InRadar
Depends on:
Blocks:
 
Reported: 2006-12-31 00:18 PST by Mark Rowe (bdash)
Modified: 2007-01-18 17:41 PST (History)
1 user (show)

See Also:


Attachments
Fix (21.78 KB, patch)
2007-01-17 01:00 PST, mitz
mjs: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Rowe (bdash) 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 ?? ()
Comment 1 Mark Rowe (bdash) 2007-01-16 19:28:59 PST
<rdar://problem/4928667>
Comment 2 mitz 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.
Comment 3 Maciej Stachowiak 2007-01-17 01:32:10 PST
Comment on attachment 12498 [details]
Fix

r=me
Comment 4 Mark Rowe (bdash) 2007-01-18 17:41:16 PST
Landed in r18971.