Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / clang / blink_gc_plugin / tests / class_requires_finalization_mixin.h
index f321281..d56a57e 100644 (file)
@@ -7,12 +7,12 @@
 
 #include "heap/stubs.h"
 
-namespace WebCore {
+namespace blink {
 
 class OffHeap : public RefCounted<OffHeap> { };
 class OnHeap : public GarbageCollected<OnHeap> { };
 
-class Mixin : public GarbageCollectedMixin {
+class MixinFinalizable : public GarbageCollectedMixin {
 public:
     void trace(Visitor*);
 private:
@@ -20,7 +20,16 @@ private:
     Member<OnHeap> m_onHeap;
 };
 
-class NeedsFinalizer : public GarbageCollected<NeedsFinalizer>, public Mixin {
+class MixinNotFinalizable : public GarbageCollectedMixin {
+public:
+    void trace(Visitor*);
+private:
+    Member<OnHeap> m_onHeap;
+};
+
+class NeedsFinalizer
+    : public GarbageCollected<NeedsFinalizer>
+    , public MixinFinalizable {
     USING_GARBAGE_COLLECTED_MIXIN(NeedsFinalizer);
 public:
     void trace(Visitor*);
@@ -29,7 +38,7 @@ private:
 };
 
 class HasFinalizer : public GarbageCollectedFinalized<HasFinalizer>,
-                     public Mixin {
+                     public MixinFinalizable {
     USING_GARBAGE_COLLECTED_MIXIN(HasFinalizer);
 public:
     void trace(Visitor*);
@@ -37,6 +46,17 @@ private:
     Member<OnHeap> m_obj;
 };
 
+class NeedsNoFinalization
+    : public GarbageCollected<NeedsNoFinalization>
+    , public MixinNotFinalizable
+    , public ScriptWrappable {
+    USING_GARBAGE_COLLECTED_MIXIN(NeedsNoFinalization);
+public:
+    void trace(Visitor*);
+private:
+    Member<OnHeap> m_obj;
+};
+
 }
 
 #endif