Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
| 9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
| 10 * disclaimer. | 10 * disclaimer. |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 36 | 36 |
| 37 namespace blink { | 37 namespace blink { |
| 38 | 38 |
| 39 LayoutFlowThread::LayoutFlowThread() | 39 LayoutFlowThread::LayoutFlowThread() |
| 40 : LayoutBlockFlow(nullptr) | 40 : LayoutBlockFlow(nullptr) |
| 41 , m_columnSetsInvalidated(false) | 41 , m_columnSetsInvalidated(false) |
| 42 , m_pageLogicalSizeChanged(false) | 42 , m_pageLogicalSizeChanged(false) |
| 43 { | 43 { |
| 44 } | 44 } |
| 45 | 45 |
| 46 LayoutFlowThread* LayoutFlowThread::locateFlowThreadContainingBlockOf(const Layo utObject& descendant) | |
| 47 { | |
| 48 ASSERT(descendant.isInsideFlowThread()); | |
| 49 LayoutObject* curr = const_cast<LayoutObject*>(&descendant); | |
|
leviw_travelin_and_unemployed
2015/08/11 17:51:07
What fails in this function if you remove this con
mstensho (USE GERRIT)
2015/08/11 19:09:18
toLayoutFlowThread(), because the constness of inp
| |
| 50 while (curr) { | |
| 51 if (curr->isSVG() && !curr->isSVGRoot()) | |
| 52 return nullptr; | |
| 53 if (curr->isLayoutFlowThread()) | |
| 54 return toLayoutFlowThread(curr); | |
| 55 LayoutObject* container = curr->container(); | |
| 56 curr = curr->parent(); | |
| 57 while (curr != container) { | |
| 58 if (curr->isLayoutFlowThread()) { | |
| 59 // The nearest ancestor flow thread isn't in our containing bloc k chain. Then we | |
| 60 // aren't really part of any flow thread, and we should stop loo king. This happens | |
| 61 // when there are out-of-flow objects or column spanners. | |
| 62 return nullptr; | |
| 63 } | |
| 64 curr = curr->parent(); | |
| 65 } | |
| 66 } | |
| 67 return nullptr; | |
| 68 } | |
| 69 | |
| 46 void LayoutFlowThread::removeColumnSetFromThread(LayoutMultiColumnSet* columnSet ) | 70 void LayoutFlowThread::removeColumnSetFromThread(LayoutMultiColumnSet* columnSet ) |
| 47 { | 71 { |
| 48 ASSERT(columnSet); | 72 ASSERT(columnSet); |
| 49 m_multiColumnSetList.remove(columnSet); | 73 m_multiColumnSetList.remove(columnSet); |
| 50 invalidateColumnSets(); | 74 invalidateColumnSets(); |
| 51 // Clear the interval tree right away, instead of leaving it around with dea d objects. Not that | 75 // Clear the interval tree right away, instead of leaving it around with dea d objects. Not that |
| 52 // anyone _should_ try to access the interval tree when the column sets are marked as invalid, | 76 // anyone _should_ try to access the interval tree when the column sets are marked as invalid, |
| 53 // but this is actually possible if other parts of the engine has bugs that cause us to not lay | 77 // but this is actually possible if other parts of the engine has bugs that cause us to not lay |
| 54 // out everything that was marked for layout, so that LayoutObject::assertLa idOut() (and a LOT | 78 // out everything that was marked for layout, so that LayoutObject::assertLa idOut() (and a LOT |
| 55 // of other assertions) fails. | 79 // of other assertions) fails. |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 182 | 206 |
| 183 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded(const MultiC olumnSetInterval& interval) | 207 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded(const MultiC olumnSetInterval& interval) |
| 184 { | 208 { |
| 185 if (m_result) | 209 if (m_result) |
| 186 return; | 210 return; |
| 187 if (interval.low() <= m_offset && interval.high() > m_offset) | 211 if (interval.low() <= m_offset && interval.high() > m_offset) |
| 188 m_result = interval.data(); | 212 m_result = interval.data(); |
| 189 } | 213 } |
| 190 | 214 |
| 191 } // namespace blink | 215 } // namespace blink |
| OLD | NEW |