OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/layout/ng/ng_physical_fragment.h" | 5 #include "core/layout/ng/ng_physical_fragment.h" |
6 | 6 |
7 #include "core/layout/ng/ng_break_token.h" | 7 #include "core/layout/ng/ng_break_token.h" |
8 #include "core/layout/ng/ng_physical_box_fragment.h" | 8 #include "core/layout/ng/ng_physical_box_fragment.h" |
| 9 #include "core/layout/ng/ng_physical_line_box_fragment.h" |
9 #include "core/layout/ng/ng_physical_text_fragment.h" | 10 #include "core/layout/ng/ng_physical_text_fragment.h" |
10 | 11 |
11 namespace blink { | 12 namespace blink { |
12 | 13 |
13 NGPhysicalFragment::NGPhysicalFragment(LayoutObject* layout_object, | 14 NGPhysicalFragment::NGPhysicalFragment(LayoutObject* layout_object, |
14 NGPhysicalSize size, | 15 NGPhysicalSize size, |
15 NGPhysicalSize overflow, | |
16 NGFragmentType type, | 16 NGFragmentType type, |
17 RefPtr<NGBreakToken> break_token) | 17 RefPtr<NGBreakToken> break_token) |
18 : layout_object_(layout_object), | 18 : layout_object_(layout_object), |
19 size_(size), | 19 size_(size), |
20 overflow_(overflow), | |
21 break_token_(std::move(break_token)), | 20 break_token_(std::move(break_token)), |
22 type_(type), | 21 type_(type), |
23 is_placed_(false) {} | 22 is_placed_(false) {} |
24 | 23 |
25 void NGPhysicalFragment::destroy() const { | 24 void NGPhysicalFragment::destroy() const { |
26 if (Type() == kFragmentText) | 25 switch (Type()) { |
27 delete static_cast<const NGPhysicalTextFragment*>(this); | 26 case kFragmentBox: |
28 else | 27 delete static_cast<const NGPhysicalBoxFragment*>(this); |
29 delete static_cast<const NGPhysicalBoxFragment*>(this); | 28 break; |
| 29 case kFragmentText: |
| 30 delete static_cast<const NGPhysicalTextFragment*>(this); |
| 31 break; |
| 32 case kFragmentLineBox: |
| 33 delete static_cast<const NGPhysicalLineBoxFragment*>(this); |
| 34 break; |
| 35 default: |
| 36 NOTREACHED(); |
| 37 break; |
| 38 } |
30 } | 39 } |
31 | 40 |
32 const ComputedStyle& NGPhysicalFragment::Style() const { | 41 const ComputedStyle& NGPhysicalFragment::Style() const { |
33 DCHECK(layout_object_); | 42 DCHECK(layout_object_); |
34 return layout_object_->styleRef(); | 43 return layout_object_->styleRef(); |
35 } | 44 } |
36 | 45 |
37 String NGPhysicalFragment::ToString() const { | 46 String NGPhysicalFragment::ToString() const { |
38 return String::format("Type: '%d' Size: '%s' Offset: '%s' Placed: '%d'", | 47 return String::format("Type: '%d' Size: '%s' Offset: '%s' Placed: '%d'", |
39 Type(), Size().ToString().ascii().data(), | 48 Type(), Size().ToString().ascii().data(), |
40 Offset().ToString().ascii().data(), IsPlaced()); | 49 Offset().ToString().ascii().data(), IsPlaced()); |
41 } | 50 } |
42 | 51 |
43 } // namespace blink | 52 } // namespace blink |
OLD | NEW |