[GPU Process] Migrate DisplayList::Iterator to use a Variant instead of ItemHandle
Created attachment 423822 [details] WIP
Created attachment 423824 [details] WIP
Created attachment 423836 [details] WIP
Created attachment 423840 [details] Tests pass but needs ChangeLog
Created attachment 423854 [details] Patch
Comment on attachment 423854 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=423854&action=review (Just a couple of quick comments so far) > Source/WebCore/ChangeLog:11 > + were just and object, placed there by placement new. "just an object" > Source/WebCore/ChangeLog:50 > + display list items. These clients were always specified in WebKit - they were only optional for > + testing. However, the code could be significantly simplified if we don't have to handle the Does this statement still apply to the in-memory display list case? (i.e. to cache DrawGlyph items when painting text frequently)
Comment on attachment 423854 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=423854&action=review > Source/WebCore/ChangeLog:100 > + which is no problem becasue we were always specifying one in WebKit anyway. "becasue" => "because"
Created attachment 423974 [details] WIP
Created attachment 423981 [details] Rebased
Created attachment 423991 [details] WIP
Created attachment 423992 [details] WIP
Created attachment 424103 [details] Patch
Created attachment 424161 [details] Patch
<rdar://problem/75929228>
Is this a good time to do this refactoring?
We should also do whatever is necessary to move WritingClient and ReadingClient from InMemoryDisplayList.h to InMemoryDisplayList.cpp.
Remaining pieces: - After 224270 and 224314, make InMemoryDisplayList not use ItemHandle - Swap out the implementation of DisplayList::Iterator, but keep the same API signatures - Update Iterator's signature, and update callers - Hunting down all the last places that use ItemHandle
We should also make ItemBuffer::createItemBuffer() stop manually calling malloc()