• Bug 1618319: Segregate intern::UpdateList insertions and removals. r=gw

    Rather than treating webrender::intern::UpdateList as a sequence of operations,
    each of which might be an insertion or a removal, and using a side table to
    supply extra data for insertions, it's simpler to segregate insertions and
    removals into two separate vectors. This avoids the need for an enum whose
    discriminant needs to be checked within the loop, and allows a few loops that
    are only looking for one kind of operation to skip over the others entirely.
    
    Ultimately, there should be no change in the order in which operations occur. In
    practice, the old UpdateList always held a contiguous run of insertions,
    followed by a run of removals (removals are consumed by apply_updates directly
    after being generated by end_frame_and_get_pending_updates).
    
    Differential Revision: https://phabricator.services.mozilla.com/D64444
    
    [ghsync] From https://hg.mozilla.org/mozilla-central/rev/06e238addde26dee65ee29f3cb676d7d47ff4e6e
    Jim Blandy authored and moz-gfx committed Mar 4, 2020