During the initial steps of masonry, we iterate over all the grid items and separate them into different structures to use in different parts of the algorithm. There are 2 main things that can be done to improve the quality of the code: 1.) Instead of storing the items using raw pointers, we should use WeakPtrs/CheckPtrs or std::reference_wrapper 2.) At the end of the layout we should probably clear these collections so it is obvious we intend not to use them after layout
<rdar://problem/103182671>