| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
| 5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
| 6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
| 7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
| 8 * | 8 * |
| 9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 return BidiStatus(static_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatus
Eor), static_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatusLastStrong), sta
tic_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatusLast), m_lineBreakContext
); | 520 return BidiStatus(static_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatus
Eor), static_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatusLastStrong), sta
tic_cast<WTF::Unicode::Direction>(m_lineBreakBidiStatusLast), m_lineBreakContext
); |
| 521 } | 521 } |
| 522 | 522 |
| 523 void RootInlineBox::setLineBreakInfo(LayoutObject* obj, unsigned breakPos, const
BidiStatus& status) | 523 void RootInlineBox::setLineBreakInfo(LayoutObject* obj, unsigned breakPos, const
BidiStatus& status) |
| 524 { | 524 { |
| 525 // When setting lineBreakObj, the LayoutObject must not be a RenderInline | 525 // When setting lineBreakObj, the LayoutObject must not be a RenderInline |
| 526 // with no line boxes, otherwise all sorts of invariants are broken later. | 526 // with no line boxes, otherwise all sorts of invariants are broken later. |
| 527 // This has security implications because if the LayoutObject does not | 527 // This has security implications because if the LayoutObject does not |
| 528 // point to at least one line box, then that RenderInline can be deleted | 528 // point to at least one line box, then that RenderInline can be deleted |
| 529 // later without resetting the lineBreakObj, leading to use-after-free. | 529 // later without resetting the lineBreakObj, leading to use-after-free. |
| 530 ASSERT_WITH_SECURITY_IMPLICATION(!obj || obj->isText() || !(obj->isRenderInl
ine() && obj->isBox() && !toRenderBox(obj)->inlineBoxWrapper())); | 530 ASSERT_WITH_SECURITY_IMPLICATION(!obj || obj->isText() || !(obj->isRenderInl
ine() && obj->isBox() && !toLayoutBox(obj)->inlineBoxWrapper())); |
| 531 | 531 |
| 532 m_lineBreakObj = obj; | 532 m_lineBreakObj = obj; |
| 533 m_lineBreakPos = breakPos; | 533 m_lineBreakPos = breakPos; |
| 534 m_lineBreakBidiStatusEor = status.eor; | 534 m_lineBreakBidiStatusEor = status.eor; |
| 535 m_lineBreakBidiStatusLastStrong = status.lastStrong; | 535 m_lineBreakBidiStatusLastStrong = status.lastStrong; |
| 536 m_lineBreakBidiStatusLast = status.last; | 536 m_lineBreakBidiStatusLast = status.last; |
| 537 m_lineBreakContext = status.context; | 537 m_lineBreakContext = status.context; |
| 538 } | 538 } |
| 539 | 539 |
| 540 EllipsisBox* RootInlineBox::ellipsisBox() const | 540 EllipsisBox* RootInlineBox::ellipsisBox() const |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 } | 850 } |
| 851 | 851 |
| 852 #ifndef NDEBUG | 852 #ifndef NDEBUG |
| 853 const char* RootInlineBox::boxName() const | 853 const char* RootInlineBox::boxName() const |
| 854 { | 854 { |
| 855 return "RootInlineBox"; | 855 return "RootInlineBox"; |
| 856 } | 856 } |
| 857 #endif | 857 #endif |
| 858 | 858 |
| 859 } // namespace blink | 859 } // namespace blink |
| OLD | NEW |