Changeset 32861 in webkit
- Timestamp:
- May 4, 2008 9:44:54 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r32857 r32861 1 2008-05-02 Antti Koivisto <antti@apple.com> 2 3 Reviewed by Mitz. 4 5 Fix <rdar://problem/5840475> 6 CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject 7 8 Non-block objects can have transforms so containingBlock() could end up returning null. 9 RenderObject::container() needs to match. 10 11 Test: fast/transforms/container-transform-crash.html 12 13 * rendering/RenderObject.cpp: 14 (WebCore::RenderObject::containingBlock): 15 (WebCore::RenderObject::container): 16 1 17 2008-05-04 Sam Weinig <sam@webkit.org> 2 18 -
trunk/WebCore/rendering/RenderObject.cpp
r32722 r32861 797 797 RenderObject* o = parent(); 798 798 if (!isText() && m_style->position() == FixedPosition) { 799 while (o && !o->isRenderView() && ! o->hasTransform())799 while (o && !o->isRenderView() && !(o->hasTransform() && o->isRenderBlock())) 800 800 o = o->parent(); 801 801 } else if (!isText() && m_style->position() == AbsolutePosition) { 802 while (o && (o->style()->position() == StaticPosition || (o->isInline() && !o->isReplaced())) && !o->isRenderView() && ! o->hasTransform()) {802 while (o && (o->style()->position() == StaticPosition || (o->isInline() && !o->isReplaced())) && !o->isRenderView() && !(o->hasTransform() && o->isRenderBlock())) { 803 803 // For relpositioned inlines, we return the nearest enclosing block. We don't try 804 804 // to return the inline itself. This allows us to avoid having a positioned objects … … 2457 2457 // aren't we'll get the root of our little subtree (most likely 2458 2458 // we'll just return 0). 2459 while (o && o->parent() && ! o->hasTransform())2459 while (o && o->parent() && !(o->hasTransform() && o->isRenderBlock())) 2460 2460 o = o->parent(); 2461 2461 } else if (pos == AbsolutePosition) { … … 2463 2463 // we may not have one if we're part of an uninstalled subtree. We'll 2464 2464 // climb as high as we can though. 2465 while (o && o->style()->position() == StaticPosition && !o->isRenderView() && ! o->hasTransform())2465 while (o && o->style()->position() == StaticPosition && !o->isRenderView() && !(o->hasTransform() && o->isRenderBlock())) 2466 2466 o = o->parent(); 2467 2467 }
Note: See TracChangeset
for help on using the changeset viewer.