blink_gc_plugin: STACK_ALLOCATED class cannot derive non-STACK_ALLOCATED interfaces |
||
Issue descriptionThe clang blink_gc_plugin requires that classes which have pointers to STACK_ALLOCATED classes themselves be STACK_ALLOCATED, and also that every base class of a STACK_ALLOCATED class by STACK_ALLOCATED. This causes a problem when one wishes to have a class which both points to a stack-allocated class (like ExceptionState) and implements an interface (which is not marked STACK_ALLOCATED). It seems to me that the latter restriction could be limited to "every STACK_ALLOCATED class doesn't derive GarbageCollected (etc.)", which could be accomplished either in the plugin or with a static_assert.
,
Sep 10 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2 commit f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2 Author: jbroman <jbroman@chromium.org> Date: Sat Sep 10 20:55:34 2016 [blink_gc_plugin] Complain about stack-allocated classes with GC bases, but not arbitrary non-stack-allocated bases. BUG= 644725 Review-Url: https://codereview.chromium.org/2323463002 Cr-Commit-Position: refs/heads/master@{#417845} [modify] https://crrev.com/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp [modify] https://crrev.com/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp [modify] https://crrev.com/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2/tools/clang/blink_gc_plugin/DiagnosticsReporter.h [modify] https://crrev.com/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2/tools/clang/blink_gc_plugin/tests/stack_allocated.h [modify] https://crrev.com/f06159b98aa70d663afdc22ea5e8c0ad0ca06bf2/tools/clang/blink_gc_plugin/tests/stack_allocated.txt
,
Jan 9 2017
,
Jun 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d73ae5a93f4bc96f55a8e5b1a9d4b2c037700475 commit d73ae5a93f4bc96f55a8e5b1a9d4b2c037700475 Author: Victor Costan <pwnall@chromium.org> Date: Mon Jun 12 23:20:29 2017 Remove GC_PLUGIN_IGNORE for fixed bug from Blink's v8 serialization code. BUG= 644725 Change-Id: I37cefb2eedbf8d1771413eb0b5f70370ed7de9dd Reviewed-on: https://chromium-review.googlesource.com/531671 Reviewed-by: Jeremy Roman <jbroman@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#478816} [modify] https://crrev.com/d73ae5a93f4bc96f55a8e5b1a9d4b2c037700475/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.h [modify] https://crrev.com/d73ae5a93f4bc96f55a8e5b1a9d4b2c037700475/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.h |
||
►
Sign in to add a comment |
||
Comment 1 by jbroman@chromium.org
, Sep 7 2016