Hi all,

We're making a change in Supplementable<T> (and Supplement<T>) to remove it;
we already changed it from a hash table to a simple array underneath,
with good size gains (and a small Speedometer3 gain from the single hottest
member).

For members where there is no layering violation, we'll simply
forward-declare the class in the .h file and have a Member<>,
along with a getter and setter.

For members where we cannot do that (e.g. Document, in, core/document.h,
wants to have a Member<RTCPeerConnectionController>, which is defined
in modules/peerconnection/rtc_peer_connection_controller.h, and core/
cannot #include anything from modules/) we'll instead use the new
ForwardDeclaredMember<> which has almost the same ergonomics but
under-the-hood Trace()s via a vtable pointer like Supplement<> does today.

There's going to be a bunch of new getters and setters (and Members)
showing up, but they already existed through template magic; they are
just becoming visible now and given names and types (as opposed to being
string-keyed, which risks type confusion). We expect a tiny further
decrease in binary size and no significant change in compilation time.

Example CL:
https://chromium-review.googlesource.com/c/chromium/src/+/7137540

/* Steinar */
-- 
Homepage: https://www.sesse.net/

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ezwpu2bqbv7zau2uzqesynuaxpi7irjg2u2ojsshuktmjjkg4u%40oy2xauimoxhn.

Reply via email to