| Index: tools/clang/blink_gc_plugin/tests/class_requires_finalization_field.h
|
| diff --git a/tools/clang/blink_gc_plugin/tests/class_requires_finalization_field.h b/tools/clang/blink_gc_plugin/tests/class_requires_finalization_field.h
|
| index 8d8ac3503223fc80fa990d7bad8284188f9b6b15..90a9ed439a7cd72e4c839a190c6a9ad15ad4ca8c 100644
|
| --- a/tools/clang/blink_gc_plugin/tests/class_requires_finalization_field.h
|
| +++ b/tools/clang/blink_gc_plugin/tests/class_requires_finalization_field.h
|
| @@ -14,6 +14,15 @@ public:
|
| virtual void trace(Visitor*) { }
|
| };
|
|
|
| +// WebCore::ScriptWrappable receives special treatment
|
| +// so as to allow it to be used together with GarbageCollected<T>,
|
| +// even when its user-declared destructor is provided.
|
| +// As it is with Oilpan disabled.
|
| +class ScriptWrappable {
|
| +public:
|
| + ~ScriptWrappable() { /* user-declared, thus, non-trivial */ }
|
| +};
|
| +
|
| // Has a non-trivial dtor (user-declared).
|
| class B {
|
| public:
|
| @@ -41,7 +50,7 @@ struct VectorTraits<WebCore::C> {
|
| namespace WebCore {
|
|
|
| // Off-heap vectors always need to be finalized.
|
| -class NeedsFinalizer : public A {
|
| +class NeedsFinalizer : public A, public ScriptWrappable {
|
| public:
|
| void trace(Visitor*);
|
| private:
|
| @@ -58,7 +67,7 @@ private:
|
| };
|
|
|
| // On-heap vectors with no inlined objects never need to be finalized.
|
| -class DoesNotNeedFinalizer : public A {
|
| +class DoesNotNeedFinalizer : public A, public ScriptWrappable {
|
| public:
|
| void trace(Visitor*);
|
| private:
|
| @@ -67,7 +76,7 @@ private:
|
|
|
| // On-heap vectors with inlined objects that don't need destruction
|
| // don't need to be finalized.
|
| -class AlsoDoesNotNeedFinalizer : public A {
|
| +class AlsoDoesNotNeedFinalizer : public A, public ScriptWrappable {
|
| public:
|
| void trace(Visitor*);
|
| private:
|
|
|