New issue
Advanced search Search tips

Issue 775384 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Cases that GarbageCollected<T> is not the top of inheritance.

Project Member Reported by yukishiino@chromium.org, Oct 17 2017

Issue description

https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h

class MODULES_EXPORT PaintRenderingContext2D
    : public BaseRenderingContext2D,
      public GarbageCollectedFinalized<PaintRenderingContext2D>,
      public ScriptWrappable {

where BaseRenderingContext2D is NOT empty class, and GarbageCollectedFinalized is NOT the top of the inheritance, so Oilpan cannot get the header area from the top address of GarbageCollected.

It's better to be able to detect this kind of error.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7800bedce8a403b209f9343d8b0fd82aca67f6e1

commit 7800bedce8a403b209f9343d8b0fd82aca67f6e1
Author: Keishi Hattori <keishi@chromium.org>
Date: Mon Oct 23 16:08:03 2017

blink_gc_plugin: Disallow GCed class from deriving GCMixin base at leftmost position

If a class derives from both GarbageCollectedMixin base and GarbageCollected base, then GarbageCollected base should be in the leftmost position.

Bug:  775384 
Change-Id: I1c94d20aa7eca9f9f1e04d5a604e67269ac7d508
Reviewed-on: https://chromium-review.googlesource.com/727644
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510810}
[modify] https://crrev.com/7800bedce8a403b209f9343d8b0fd82aca67f6e1/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h
[modify] https://crrev.com/7800bedce8a403b209f9343d8b0fd82aca67f6e1/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp
[modify] https://crrev.com/7800bedce8a403b209f9343d8b0fd82aca67f6e1/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp
[modify] https://crrev.com/7800bedce8a403b209f9343d8b0fd82aca67f6e1/tools/clang/blink_gc_plugin/tests/left_most_gc_base.h
[modify] https://crrev.com/7800bedce8a403b209f9343d8b0fd82aca67f6e1/tools/clang/blink_gc_plugin/tests/left_most_gc_base.txt

Is this fixed?
Status: Fixed (was: Assigned)

Sign in to add a comment