OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 2256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2267 } | 2267 } |
2268 | 2268 |
2269 bool LayoutObject::isSelectionBorder() const | 2269 bool LayoutObject::isSelectionBorder() const |
2270 { | 2270 { |
2271 SelectionState st = selectionState(); | 2271 SelectionState st = selectionState(); |
2272 return st == SelectionStart || st == SelectionEnd || st == SelectionBoth; | 2272 return st == SelectionStart || st == SelectionEnd || st == SelectionBoth; |
2273 } | 2273 } |
2274 | 2274 |
2275 inline void LayoutObject::clearLayoutRootIfNeeded() const | 2275 inline void LayoutObject::clearLayoutRootIfNeeded() const |
2276 { | 2276 { |
2277 if (frame()) { | 2277 if (FrameView* view = frameView()) { |
2278 if (FrameView* view = frame()->view()) { | 2278 if (!documentBeingDestroyed()) |
2279 if (view->layoutRoot() == this) { | 2279 view->clearLayoutSubtreeRoot(this); |
2280 if (!documentBeingDestroyed()) | |
2281 ASSERT_NOT_REACHED(); | |
2282 // This indicates a failure to layout the child, which is why | |
2283 // the layout root is still set to |this|. Make sure to clear it | |
2284 // since we are getting destroyed. | |
2285 view->clearLayoutSubtreeRoot(); | |
2286 } | |
2287 } | |
2288 } | 2280 } |
2289 } | 2281 } |
2290 | 2282 |
2291 void LayoutObject::willBeDestroyed() | 2283 void LayoutObject::willBeDestroyed() |
2292 { | 2284 { |
2293 // Destroy any leftover anonymous children. | 2285 // Destroy any leftover anonymous children. |
2294 LayoutObjectChildList* children = virtualChildren(); | 2286 LayoutObjectChildList* children = virtualChildren(); |
2295 if (children) | 2287 if (children) |
2296 children->destroyLeftoverChildren(); | 2288 children->destroyLeftoverChildren(); |
2297 | 2289 |
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3184 { | 3176 { |
3185 if (object1) { | 3177 if (object1) { |
3186 const blink::LayoutObject* root = object1; | 3178 const blink::LayoutObject* root = object1; |
3187 while (root->parent()) | 3179 while (root->parent()) |
3188 root = root->parent(); | 3180 root = root->parent(); |
3189 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3181 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
3190 } | 3182 } |
3191 } | 3183 } |
3192 | 3184 |
3193 #endif | 3185 #endif |
OLD | NEW |