OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. 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 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
12 * | 12 * |
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY | 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR | 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #include "config.h" | 26 #include "config.h" |
27 #include "core/rendering/LayoutState.h" | 27 #include "core/rendering/LayoutState.h" |
28 | 28 |
| 29 #include "core/platform/Partitions.h" |
29 #include "core/rendering/ColumnInfo.h" | 30 #include "core/rendering/ColumnInfo.h" |
30 #include "core/rendering/RenderArena.h" | |
31 #include "core/rendering/RenderInline.h" | 31 #include "core/rendering/RenderInline.h" |
32 #include "core/rendering/RenderLayer.h" | 32 #include "core/rendering/RenderLayer.h" |
33 #include "core/rendering/RenderView.h" | 33 #include "core/rendering/RenderView.h" |
34 | 34 |
35 namespace WebCore { | 35 namespace WebCore { |
36 | 36 |
37 LayoutState::LayoutState(LayoutState* prev, RenderBox* renderer, const LayoutSiz
e& offset, LayoutUnit pageLogicalHeight, bool pageLogicalHeightChanged, ColumnIn
fo* columnInfo) | 37 LayoutState::LayoutState(LayoutState* prev, RenderBox* renderer, const LayoutSiz
e& offset, LayoutUnit pageLogicalHeight, bool pageLogicalHeightChanged, ColumnIn
fo* columnInfo) |
38 : m_columnInfo(columnInfo) | 38 : m_columnInfo(columnInfo) |
39 , m_lineGrid(0) | 39 , m_lineGrid(0) |
40 , m_next(prev) | 40 , m_next(prev) |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 m_paintOffset = LayoutSize(absContentPoint.x(), absContentPoint.y()); | 154 m_paintOffset = LayoutSize(absContentPoint.x(), absContentPoint.y()); |
155 | 155 |
156 if (container->hasOverflowClip()) { | 156 if (container->hasOverflowClip()) { |
157 m_clipped = true; | 157 m_clipped = true; |
158 RenderBox* containerBox = toRenderBox(container); | 158 RenderBox* containerBox = toRenderBox(container); |
159 m_clipRect = LayoutRect(toPoint(m_paintOffset), containerBox->cachedSize
ForOverflowClip()); | 159 m_clipRect = LayoutRect(toPoint(m_paintOffset), containerBox->cachedSize
ForOverflowClip()); |
160 m_paintOffset -= containerBox->scrolledContentOffset(); | 160 m_paintOffset -= containerBox->scrolledContentOffset(); |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 #ifndef NDEBUG | 164 void LayoutState::destroy() |
165 static bool inLayoutStateDestroy; | |
166 #endif | |
167 | |
168 void LayoutState::destroy(RenderArena* renderArena) | |
169 { | 165 { |
170 #ifndef NDEBUG | |
171 inLayoutStateDestroy = true; | |
172 #endif | |
173 delete this; | 166 delete this; |
174 #ifndef NDEBUG | |
175 inLayoutStateDestroy = false; | |
176 #endif | |
177 renderArena->free(*(size_t*)this, this); | |
178 } | 167 } |
179 | 168 |
180 void* LayoutState::operator new(size_t sz, RenderArena* renderArena) | 169 #if ENABLE(PARTITION_ALLOC) |
| 170 void* LayoutState::operator new(size_t sz) |
181 { | 171 { |
182 return renderArena->allocate(sz); | 172 return partitionAlloc(Partitions::getRenderingPartition(), sz); |
183 } | 173 } |
184 | 174 |
185 void LayoutState::operator delete(void* ptr, size_t sz) | 175 void LayoutState::operator delete(void* ptr) |
186 { | 176 { |
187 ASSERT(inLayoutStateDestroy); | 177 partitionFree(ptr); |
188 *(size_t*)ptr = sz; | |
189 } | 178 } |
| 179 #endif |
190 | 180 |
191 void LayoutState::clearPaginationInformation() | 181 void LayoutState::clearPaginationInformation() |
192 { | 182 { |
193 m_pageLogicalHeight = m_next->m_pageLogicalHeight; | 183 m_pageLogicalHeight = m_next->m_pageLogicalHeight; |
194 m_pageOffset = m_next->m_pageOffset; | 184 m_pageOffset = m_next->m_pageOffset; |
195 m_columnInfo = m_next->m_columnInfo; | 185 m_columnInfo = m_next->m_columnInfo; |
196 } | 186 } |
197 | 187 |
198 LayoutUnit LayoutState::pageLogicalOffset(RenderBox* child, LayoutUnit childLogi
calOffset) const | 188 LayoutUnit LayoutState::pageLogicalOffset(RenderBox* child, LayoutUnit childLogi
calOffset) const |
199 { | 189 { |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 LayoutUnit paginationDelta = gridLineHeight - remainder; | 273 LayoutUnit paginationDelta = gridLineHeight - remainder; |
284 if (isHorizontalWritingMode) | 274 if (isHorizontalWritingMode) |
285 m_lineGridPaginationOrigin.setHeight(paginationDelta); | 275 m_lineGridPaginationOrigin.setHeight(paginationDelta); |
286 else | 276 else |
287 m_lineGridPaginationOrigin.setWidth(paginationDelta); | 277 m_lineGridPaginationOrigin.setWidth(paginationDelta); |
288 } | 278 } |
289 } | 279 } |
290 } | 280 } |
291 | 281 |
292 } // namespace WebCore | 282 } // namespace WebCore |
OLD | NEW |