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

See Also:


Attachments
Don't paint the outline if it's inset by more than half the width or height (8.13 KB, patch)
2006-12-31 06:40 PST, mitz
mrowe: 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:22:13 PST
<html>
<head>
    <title>Test HTML Page</title>
    <style type="text/css">
    p
    {
        outline: solid;
        outline-offset: -10pt;
    }
    </style>
</head>
<body>
    <p>This is a page.</p>
</body>
</html>




Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xbbadbeef
0x011855c3 in WebCore::RenderObject::drawBorder (this=0x2047575c, graphicsContext=0xbfffd094, x1=1035466927, y1=1035466927, x2=1035466930, y2=-1035466879, s=WebCore::RenderObject::BSLeft, c={static black = 4278190080, static white = 4294967295, static darkGray = 4286611584, static gray = 4288716960, static lightGray = 4290822336, static transparent = 0, m_color = 4278190080, m_valid = true}, textcolor=@0x1a77203c, style=WebCore::SOLID, adjbw1=3, adjbw2=3) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderObject.cpp:1104
1104                ASSERT(y2 >= y1);
(gdb) bt
#0  0x011855c3 in WebCore::RenderObject::drawBorder (this=0x2047575c, graphicsContext=0xbfffd094, x1=1035466927, y1=1035466927, x2=1035466930, y2=-1035466879, s=WebCore::RenderObject::BSLeft, c={static black = 4278190080, static white = 4294967295, static darkGray = 4286611584, static gray = 4288716960, static lightGray = 4290822336, static transparent = 0, m_color = 4278190080, m_valid = true}, textcolor=@0x1a77203c, style=WebCore::SOLID, adjbw1=3, adjbw2=3) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderObject.cpp:1104
#1  0x011730e5 in WebCore::RenderFlow::paintOutlineForLine (this=0x2047575c, graphicsContext=0xbfffd094, tx=8, ty=8, lastline=@0x18bce3c0, thisline=@0x189fe350, nextline=@0x187f8c30) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderFlow.cpp:732
#2  0x01173dd2 in WebCore::RenderFlow::paintOutline (this=0x2047575c, graphicsContext=0xbfffd094, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderFlow.cpp:703
#3  0x011743bb in WebCore::RenderFlow::paintLines (this=0x20d706dc, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderFlow.cpp:402
#4  0x0115925e in WebCore::RenderBlock::paintObject (this=0x20d706dc, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1367
#5  0x01151e89 in WebCore::RenderBlock::paint (this=0x20d706dc, paintInfo=@0xbfffcbe0, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285
#6  0x011521bf in WebCore::RenderBlock::paintChildren (this=0x1a7759cc, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1315
#7  0x01159280 in WebCore::RenderBlock::paintObject (this=0x1a7759cc, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1369
#8  0x01151e89 in WebCore::RenderBlock::paint (this=0x1a7759cc, paintInfo=@0xbfffcd10, tx=8, ty=8) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285
#9  0x011521bf in WebCore::RenderBlock::paintChildren (this=0x1d555a7c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1315
#10 0x01159280 in WebCore::RenderBlock::paintObject (this=0x1d555a7c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1369
#11 0x01151e89 in WebCore::RenderBlock::paint (this=0x1d555a7c, paintInfo=@0xbfffce64, tx=0, ty=0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderBlock.cpp:1285
#12 0x01180a72 in WebCore::RenderLayer::paintLayer (this=0x1d5812fc, rootLayer=0x204e7f5c, p=0xbfffd094, paintDirtyRect=@0xbfffd09c, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1440
#13 0x01180bfc in WebCore::RenderLayer::paintLayer (this=0x204e7f5c, rootLayer=0x204e7f5c, p=0xbfffd094, paintDirtyRect=@0xbfffd09c, haveTransparency=false, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1463
#14 0x01180cc4 in WebCore::RenderLayer::paint (this=0x204e7f5c, p=0xbfffd094, damageRect=@0xbfffd09c, paintRestriction=WebCore::PaintRestrictionNone, paintingRoot=0x0) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/rendering/RenderLayer.cpp:1330
#15 0x010dfc7b in WebCore::Frame::paint (this=0x299ca60, p=0xbfffd094, rect=@0xbfffd09c) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/page/Frame.cpp:1041
#16 0x01100429 in -[WebCoreFrameBridge drawRect:] (self=0x299c5f0, _cmd=0x90aa2b6c, rect={origin = {x = 0, y = 0}, size = {width = 1400, height = 746}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebCore/page/mac/WebCoreFrameBridge.mm:480
#17 0x00341fbf in -[WebHTMLView drawSingleRect:] (self=0x20d42040, _cmd=0x3c3308, rect={origin = {x = 0, y = 0}, size = {width = 1400, height = 746}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:2678
#18 0x00342395 in -[WebHTMLView drawRect:] (self=0x20d42040, _cmd=0x90aa2b6c, rect={origin = {x = 0, y = 0}, size = {width = 1400, height = 746}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:2729
#19 0x932ee3b1 in -[NSView _drawRect:clip:] ()
#20 0x932ed40b in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#21 0x0033bd2f in -[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:] (self=0x20d42040, _cmd=0x90a83574, needsLockFocus=1 '\001', visRect={origin = {x = 0, y = 0}, size = {width = 1400, height = 746}}) at /Users/mrowe/Documents/Source/SVN/WebKit-Nightlies/WebKit/WebView/WebHTMLView.m:893
#22 0x932ff36f in _recursiveDisplayInRect2 ()
#23 0x9083af26 in CFArrayApplyFunction ()
#24 0x932ed613 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#25 0x932ff36f in _recursiveDisplayInRect2 ()
#26 0x9083af26 in CFArrayApplyFunction ()
#27 0x932ed613 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#28 0x932ec473 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#29 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#30 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#31 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#32 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#33 0x932ed041 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#34 0x932ebb78 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#35 0x932eb362 in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] ()
#36 0x932eac8e in -[NSView displayIfNeeded] ()
#37 0x932eaa32 in -[NSWindow displayIfNeeded] ()
#38 0x0001c394 in ?? ()
#39 0x9333ad6c in _handleWindowNeedsDisplay ()
#40 0x9082a155 in __CFRunLoopDoObservers ()
#41 0x908291f7 in CFRunLoopRunSpecific ()
#42 0x90828eb5 in CFRunLoopRunInMode ()
#43 0x92dcdb90 in RunCurrentEventLoopInMode ()
#44 0x92dcd297 in ReceiveNextEventCommon ()
#45 0x92dcd0ee in BlockUntilNextEventMatchingListInMode ()
#46 0x9326f465 in _DPSNextEvent ()
#47 0x9326f056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#48 0x00006f96 in ?? ()
#49 0x93268ddb in -[NSApplication run] ()
#50 0x9325cd2f in NSApplicationMain ()
#51 0x0005f7de in ?? ()
#52 0x0005f6f9 in ?? ()
Current language:  auto; currently c++
(gdb)
Comment 1 mitz 2006-12-31 06:40:46 PST
Created attachment 12132 [details]
Don't paint the outline if it's inset by more than half the width or height

Copy Firefox's behavior: if the outline inset is more than half the width or height, don't paint the outline.
Comment 2 Mark Rowe (bdash) 2007-01-01 16:08:49 PST
Comment on attachment 12132 [details]
Don't paint the outline if it's inset by more than half the width or height

r=me
Comment 3 David Kilzer (:ddkilzer) 2007-01-01 18:19:16 PST
Committed revision 18511.