Index: third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h b/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h |
index 00d5b68c80c45428ff508c9cf480c8781b7ada8d..372aa34ee45da8333eb3da46f7c36d9b38dde9ba 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h |
@@ -8,7 +8,8 @@ |
#include "core/CoreExport.h" |
#include "core/layout/ng/ng_units.h" |
#include "platform/heap/Handle.h" |
-#include "wtf/DoublyLinkedList.h" |
+#include "wtf/Vector.h" |
+#include "wtf/text/WTFString.h" |
namespace blink { |
@@ -26,17 +27,35 @@ enum NGFragmentationType { |
FragmentRegion |
}; |
-class NGExclusion { |
- public: |
- NGExclusion(); |
- ~NGExclusion() {} |
+struct NGExclusion { |
+ NGExclusion(LayoutUnit top, |
+ LayoutUnit right, |
+ LayoutUnit bottom, |
+ LayoutUnit left) { |
+ rect.location.left = left; |
+ rect.location.top = top; |
+ rect.size.width = right - left; |
+ rect.size.height = bottom - top; |
+ } |
+ LayoutUnit Top() const { return rect.location.top; } |
+ LayoutUnit Right() const { return rect.size.width + rect.location.left; } |
+ LayoutUnit Bottom() const { return rect.size.height + rect.location.top; } |
+ LayoutUnit Left() const { return rect.location.left; } |
+ String toString() const { |
+ return String::format( |
+ "Exclusion: %0.2f, %0.2f, size: %0.2f, %0.2f (right %0.2f)", |
+ rect.location.left.toFloat(), rect.location.top.toFloat(), |
+ rect.size.width.toFloat(), rect.size.height.toFloat(), |
+ Right().toFloat()); |
+ } |
+ NGPhysicalRect rect; |
}; |
// The NGPhysicalConstraintSpace contains the underlying data for the |
// NGConstraintSpace. It is not meant to be used directly as all members are in |
// the physical coordinate space. Instead NGConstraintSpace should be used. |
class CORE_EXPORT NGPhysicalConstraintSpace final |
- : public GarbageCollected<NGPhysicalConstraintSpace> { |
+ : public GarbageCollectedFinalized<NGPhysicalConstraintSpace> { |
public: |
NGPhysicalConstraintSpace(); |
NGPhysicalConstraintSpace(NGPhysicalSize); |
@@ -45,8 +64,7 @@ class CORE_EXPORT NGPhysicalConstraintSpace final |
NGPhysicalSize ContainerSize() const { return container_size_; } |
void AddExclusion(const NGExclusion, unsigned options = 0); |
- const DoublyLinkedList<const NGExclusion>* Exclusions( |
- unsigned options = 0) const; |
+ const Vector<NGExclusion>& Exclusions(unsigned options = 0) const; |
DEFINE_INLINE_TRACE() {} |
@@ -62,7 +80,7 @@ class CORE_EXPORT NGPhysicalConstraintSpace final |
unsigned width_direction_fragmentation_type_ : 2; |
unsigned height_direction_fragmentation_type_ : 2; |
- DoublyLinkedList<const NGExclusion> exclusions_; |
+ Vector<NGExclusion> exclusions_; |
}; |
} // namespace blink |