Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: Source/core/rendering/RenderGrid.h

Issue 24331003: Cache several vectors to avoid malloc/free churn (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/rendering/RenderGrid.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 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
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 virtual void removeChild(RenderObject*) OVERRIDE; 65 virtual void removeChild(RenderObject*) OVERRIDE;
66 66
67 virtual void styleDidChange(StyleDifference, const RenderStyle*) OVERRIDE; 67 virtual void styleDidChange(StyleDifference, const RenderStyle*) OVERRIDE;
68 68
69 bool explicitGridDidResize(const RenderStyle*) const; 69 bool explicitGridDidResize(const RenderStyle*) const;
70 bool namedGridLinesDefinitionDidChange(const RenderStyle*) const; 70 bool namedGridLinesDefinitionDidChange(const RenderStyle*) const;
71 71
72 LayoutUnit computePreferredTrackWidth(const GridLength&, size_t) const; 72 LayoutUnit computePreferredTrackWidth(const GridLength&, size_t) const;
73 73
74 class GridIterator; 74 class GridIterator;
75 class GridSizingData;
75 enum TrackSizingDirection { ForColumns, ForRows }; 76 enum TrackSizingDirection { ForColumns, ForRows };
76 void computedUsedBreadthOfGridTracks(TrackSizingDirection, Vector<GridTrack> & columnTracks, Vector<GridTrack>& rowTracks); 77 void computedUsedBreadthOfGridTracks(TrackSizingDirection, GridSizingData&);
77 LayoutUnit computeUsedBreadthOfMinLength(TrackSizingDirection, const GridLen gth&) const; 78 LayoutUnit computeUsedBreadthOfMinLength(TrackSizingDirection, const GridLen gth&) const;
78 LayoutUnit computeUsedBreadthOfMaxLength(TrackSizingDirection, const GridLen gth&, LayoutUnit usedBreadth) const; 79 LayoutUnit computeUsedBreadthOfMaxLength(TrackSizingDirection, const GridLen gth&, LayoutUnit usedBreadth) const;
79 LayoutUnit computeUsedBreadthOfSpecifiedLength(TrackSizingDirection, const L ength&) const; 80 LayoutUnit computeUsedBreadthOfSpecifiedLength(TrackSizingDirection, const L ength&) const;
80 void resolveContentBasedTrackSizingFunctions(TrackSizingDirection, Vector<Gr idTrack>& columnTracks, Vector<GridTrack>& rowTracks, const Vector<size_t>&, Lay outUnit& availableLogicalSpace); 81 void resolveContentBasedTrackSizingFunctions(TrackSizingDirection, GridSizin gData&, LayoutUnit& availableLogicalSpace);
81 82
82 void growGrid(TrackSizingDirection); 83 void growGrid(TrackSizingDirection);
83 void insertItemIntoGrid(RenderBox*, size_t rowTrack, size_t columnTrack); 84 void insertItemIntoGrid(RenderBox*, size_t rowTrack, size_t columnTrack);
84 void insertItemIntoGrid(RenderBox*, const GridCoordinate&); 85 void insertItemIntoGrid(RenderBox*, const GridCoordinate&);
85 void placeItemsOnGrid(); 86 void placeItemsOnGrid();
86 void populateExplicitGridAndOrderIterator(); 87 void populateExplicitGridAndOrderIterator();
87 void placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>&); 88 void placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>&);
88 void placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>&); 89 void placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>&);
89 void placeAutoMajorAxisItemOnGrid(RenderBox*); 90 void placeAutoMajorAxisItemOnGrid(RenderBox*);
90 TrackSizingDirection autoPlacementMajorAxisDirection() const; 91 TrackSizingDirection autoPlacementMajorAxisDirection() const;
91 TrackSizingDirection autoPlacementMinorAxisDirection() const; 92 TrackSizingDirection autoPlacementMinorAxisDirection() const;
92 93
93 void layoutGridItems(); 94 void layoutGridItems();
94 void populateGridPositions(const Vector<GridTrack>& columnTracks, const Vect or<GridTrack>& rowTracks); 95 void populateGridPositions(const GridSizingData&);
95 96
96 virtual bool supportsPartialLayout() const OVERRIDE { return false; } 97 virtual bool supportsPartialLayout() const OVERRIDE { return false; }
97 98
98 typedef LayoutUnit (RenderGrid::* SizingFunction)(RenderBox*, TrackSizingDir ection, Vector<GridTrack>&); 99 typedef LayoutUnit (RenderGrid::* SizingFunction)(RenderBox*, TrackSizingDir ection, Vector<GridTrack>&);
99 typedef LayoutUnit (GridTrack::* AccumulatorGetter)() const; 100 typedef LayoutUnit (GridTrack::* AccumulatorGetter)() const;
100 typedef void (GridTrack::* AccumulatorGrowFunction)(LayoutUnit); 101 typedef void (GridTrack::* AccumulatorGrowFunction)(LayoutUnit);
101 typedef bool (GridTrackSize::* FilterFunction)() const; 102 typedef bool (GridTrackSize::* FilterFunction)() const;
102 void resolveContentBasedTrackSizingFunctionsForItems(TrackSizingDirection, V ector<GridTrack>& columnTracks, Vector<GridTrack>& rowTracks, RenderBox*, Filter Function, SizingFunction, AccumulatorGetter, AccumulatorGrowFunction); 103 void resolveContentBasedTrackSizingFunctionsForItems(TrackSizingDirection, G ridSizingData&, RenderBox*, FilterFunction, SizingFunction, AccumulatorGetter, A ccumulatorGrowFunction);
103 void distributeSpaceToTracks(Vector<GridTrack*>&, Vector<GridTrack*>* tracks ForGrowthAboveMaxBreadth, AccumulatorGetter, AccumulatorGrowFunction, LayoutUnit & availableLogicalSpace); 104 void distributeSpaceToTracks(Vector<GridTrack*>&, Vector<GridTrack*>* tracks ForGrowthAboveMaxBreadth, AccumulatorGetter, AccumulatorGrowFunction, GridSizing Data&, LayoutUnit& availableLogicalSpace);
104 105
105 double computeNormalizedFractionBreadth(Vector<GridTrack>&, TrackSizingDirec tion, LayoutUnit availableLogicalSpace) const; 106 double computeNormalizedFractionBreadth(Vector<GridTrack>&, TrackSizingDirec tion, LayoutUnit availableLogicalSpace) const;
106 107
107 const GridTrackSize& gridTrackSize(TrackSizingDirection, size_t) const; 108 const GridTrackSize& gridTrackSize(TrackSizingDirection, size_t) const;
108 size_t explicitGridColumnCount() const; 109 size_t explicitGridColumnCount() const;
109 size_t explicitGridRowCount() const; 110 size_t explicitGridRowCount() const;
110 size_t explicitGridSizeForSide(GridPositionSide) const; 111 size_t explicitGridSizeForSide(GridPositionSide) const;
111 112
112 LayoutUnit logicalContentHeightForChild(RenderBox*, Vector<GridTrack>&); 113 LayoutUnit logicalContentHeightForChild(RenderBox*, Vector<GridTrack>&);
113 LayoutUnit minContentForChild(RenderBox*, TrackSizingDirection, Vector<GridT rack>& columnTracks); 114 LayoutUnit minContentForChild(RenderBox*, TrackSizingDirection, Vector<GridT rack>& columnTracks);
114 LayoutUnit maxContentForChild(RenderBox*, TrackSizingDirection, Vector<GridT rack>& columnTracks); 115 LayoutUnit maxContentForChild(RenderBox*, TrackSizingDirection, Vector<GridT rack>& columnTracks);
115 LayoutPoint findChildLogicalPosition(RenderBox*, const Vector<GridTrack>& co lumnTracks, const Vector<GridTrack>& rowTracks); 116 LayoutPoint findChildLogicalPosition(RenderBox*, const GridSizingData&);
116 GridCoordinate cachedGridCoordinate(const RenderBox*) const; 117 GridCoordinate cachedGridCoordinate(const RenderBox*) const;
117 118
118 GridSpan resolveGridPositionsFromAutoPlacementPosition(const RenderBox*, Tra ckSizingDirection, size_t) const; 119 GridSpan resolveGridPositionsFromAutoPlacementPosition(const RenderBox*, Tra ckSizingDirection, size_t) const;
119 PassOwnPtr<GridSpan> resolveGridPositionsFromStyle(const RenderBox*, TrackSi zingDirection) const; 120 PassOwnPtr<GridSpan> resolveGridPositionsFromStyle(const RenderBox*, TrackSi zingDirection) const;
120 size_t resolveNamedGridLinePositionFromStyle(const GridPosition&, GridPositi onSide) const; 121 size_t resolveNamedGridLinePositionFromStyle(const GridPosition&, GridPositi onSide) const;
121 size_t resolveGridPositionFromStyle(const GridPosition&, GridPositionSide) c onst; 122 size_t resolveGridPositionFromStyle(const GridPosition&, GridPositionSide) c onst;
122 PassOwnPtr<GridSpan> resolveGridPositionAgainstOppositePosition(size_t resol vedOppositePosition, const GridPosition&, GridPositionSide) const; 123 PassOwnPtr<GridSpan> resolveGridPositionAgainstOppositePosition(size_t resol vedOppositePosition, const GridPosition&, GridPositionSide) const;
123 PassOwnPtr<GridSpan> resolveNamedGridLinePositionAgainstOppositePosition(siz e_t resolvedOppositePosition, const GridPosition&, GridPositionSide) const; 124 PassOwnPtr<GridSpan> resolveNamedGridLinePositionAgainstOppositePosition(siz e_t resolvedOppositePosition, const GridPosition&, GridPositionSide) const;
124 PassOwnPtr<GridSpan> resolveBeforeStartNamedGridLinePositionAgainstOppositeP osition(size_t resolvedOppositePosition, const GridPosition&, const Vector<size_ t>&) const; 125 PassOwnPtr<GridSpan> resolveBeforeStartNamedGridLinePositionAgainstOppositeP osition(size_t resolvedOppositePosition, const GridPosition&, const Vector<size_ t>&) const;
125 PassOwnPtr<GridSpan> resolveAfterEndNamedGridLinePositionAgainstOppositePosi tion(size_t resolvedOppositePosition, const GridPosition&, const Vector<size_t>& ) const; 126 PassOwnPtr<GridSpan> resolveAfterEndNamedGridLinePositionAgainstOppositePosi tion(size_t resolvedOppositePosition, const GridPosition&, const Vector<size_t>& ) const;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderGrid()); 167 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderGrid());
167 return static_cast<const RenderGrid*>(object); 168 return static_cast<const RenderGrid*>(object);
168 } 169 }
169 170
170 // Catch unneeded cast. 171 // Catch unneeded cast.
171 void toRenderGrid(const RenderGrid*); 172 void toRenderGrid(const RenderGrid*);
172 173
173 } // namespace WebCore 174 } // namespace WebCore
174 175
175 #endif // RenderGrid_h 176 #endif // RenderGrid_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/rendering/RenderGrid.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698