Chromium Code Reviews
DescriptionOilpan: disable conservative GCs during initial GC mixin construction.
Another, more effective, attempt at disallowing conservative GCs from
striking while constructing a GC mixin object and it is not in a
well-formed state to allow a GC to strike.
GC mixins now override 'operator new', which along with taking care of
the allocation request, disables conservative GCs. GCs are kept disabled
until the constructors of the mixin's inherited classes have run and
the mixin itself is in a well-formed state to re-enable GCs.
Arrange for that re-enabling by way of a private field to an empty type
with a constructor that takes care of the underlying details. All of this
is hidden from direct view to the Blink code, still only requiring that
GC mixin instances declare themselves as such by using the
USING_GARBAGE_COLLECTED_MIXIN(Type) macro.
R=haraken
BUG=456823
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=191501
Patch Set 1 #
Total comments: 3
Patch Set 2 : fix msvc compilation #Patch Set 3 : add notion of nested mixin decls #Patch Set 4 : non-oilpan compile fix #Patch Set 5 : track mixin nesting levels #Patch Set 6 : Switch to a static const for mixinLevels #
Total comments: 3
Patch Set 7 : Add test + comments; rebased #Patch Set 8 : Add GC mixin test #Messages
Total messages: 31 (4 generated)
|