74void Compute(std::vector<Element>* elements,
int target_size) {
76 int flex_grow_sum = 0;
77 int flex_shrink_sum = 0;
78 int flex_shrink_size = 0;
80 for (
auto&
element : *elements) {
89 const int extra_space = target_size -
size;
90 if (extra_space >= 0) {
91 ComputeGrow(elements, extra_space, flex_grow_sum);
92 }
else if (flex_shrink_size + extra_space >= 0) {
93 ComputeShrinkEasy(elements, extra_space, flex_shrink_sum);
96 ComputeShrinkHard(elements, extra_space + flex_shrink_size,
97 size - flex_shrink_size);