| 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 30 matching lines...) Expand all Loading... |
| 41 , m_columnSetsInvalidated(false) | 41 , m_columnSetsInvalidated(false) |
| 42 , m_columnSetsHaveUniformLogicalHeight(true) | 42 , m_columnSetsHaveUniformLogicalHeight(true) |
| 43 , m_pageLogicalSizeChanged(false) | 43 , m_pageLogicalSizeChanged(false) |
| 44 { | 44 { |
| 45 } | 45 } |
| 46 | 46 |
| 47 void LayoutFlowThread::removeColumnSetFromThread(LayoutMultiColumnSet* columnSet
) | 47 void LayoutFlowThread::removeColumnSetFromThread(LayoutMultiColumnSet* columnSet
) |
| 48 { | 48 { |
| 49 ASSERT(columnSet); | 49 ASSERT(columnSet); |
| 50 m_multiColumnSetList.remove(columnSet); | 50 m_multiColumnSetList.remove(columnSet); |
| 51 invalidateColumnSets(); |
| 52 // Clear the interval tree right away, instead of leaving it around with dea
d objects. Not that |
| 53 // anyone _should_ try to access the interval tree when the column sets are
marked as invalid, |
| 54 // but this is actually possible if other parts of the engine has bugs that
cause us to not lay |
| 55 // out everything that was marked for layout, so that LayoutObject::assertLa
idOut() (and a LOT |
| 56 // of other assertions) fails. |
| 57 m_multiColumnSetIntervalTree.clear(); |
| 51 } | 58 } |
| 52 | 59 |
| 53 void LayoutFlowThread::invalidateColumnSets() | 60 void LayoutFlowThread::invalidateColumnSets() |
| 54 { | 61 { |
| 55 if (m_columnSetsInvalidated) { | 62 if (m_columnSetsInvalidated) { |
| 56 ASSERT(selfNeedsLayout()); | 63 ASSERT(selfNeedsLayout()); |
| 57 return; | 64 return; |
| 58 } | 65 } |
| 59 | 66 |
| 60 setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChan
ged); | 67 setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChan
ged); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 | 202 |
| 196 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded(const MultiC
olumnSetInterval& interval) | 203 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded(const MultiC
olumnSetInterval& interval) |
| 197 { | 204 { |
| 198 if (m_result) | 205 if (m_result) |
| 199 return; | 206 return; |
| 200 if (interval.low() <= m_offset && interval.high() > m_offset) | 207 if (interval.low() <= m_offset && interval.high() > m_offset) |
| 201 m_result = interval.data(); | 208 m_result = interval.data(); |
| 202 } | 209 } |
| 203 | 210 |
| 204 } // namespace blink | 211 } // namespace blink |
| OLD | NEW |