| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_GARBAGE_COLLECTED_H_ |
| #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_GARBAGE_COLLECTED_H_ |
| |
| #include "v8/include/cppgc/garbage-collected.h" |
| #include "v8/include/cppgc/type-traits.h" |
| |
| // GC_PLUGIN_IGNORE is used to make the plugin ignore a particular class or |
| // field when checking for proper usage. When using GC_PLUGIN_IGNORE |
| // a bug-number should be provided as an argument where the bug describes |
| // what needs to happen to remove the GC_PLUGIN_IGNORE again. |
| #if defined(__clang__) |
| #define GC_PLUGIN_IGNORE(bug) \ |
| __attribute__((annotate("blink_gc_plugin_ignore"))) |
| #else |
| #define GC_PLUGIN_IGNORE(bug) |
| #endif |
| |
| namespace blink { |
| |
| using GarbageCollectedMixin = cppgc::GarbageCollectedMixin; |
| |
| template <typename T> |
| struct IsGarbageCollectedMixin { |
| public: |
| static const bool value = cppgc::IsGarbageCollectedMixinTypeV<T>; |
| }; |
| |
| } // namespace blink |
| |
| #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_GARBAGE_COLLECTED_H_ |