Commit 0b96f711 authored by Omer Katz's avatar Omer Katz Committed by Commit Bot

cppgc: Provide TraceTraitBase that users can inherit from

The TraceTrait for JSMember is currently missing GetTraceDescriptor.
We missed it because we don't have proper tests for JSMember, but it
would fail to build if it was ever actually traced.

Bug: chromium:1056170
Change-Id: I45fd2c7c666e791f866813f762b488958f65f3cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2460815Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70413}
parent 65bec1aa
...@@ -55,8 +55,6 @@ struct V8_EXPORT TraceTraitFromInnerAddressImpl { ...@@ -55,8 +55,6 @@ struct V8_EXPORT TraceTraitFromInnerAddressImpl {
static TraceDescriptor GetTraceDescriptor(const void* address); static TraceDescriptor GetTraceDescriptor(const void* address);
}; };
} // namespace internal
/** /**
* Trait specifying how the garbage collector processes an object of type T. * Trait specifying how the garbage collector processes an object of type T.
* *
...@@ -64,7 +62,7 @@ struct V8_EXPORT TraceTraitFromInnerAddressImpl { ...@@ -64,7 +62,7 @@ struct V8_EXPORT TraceTraitFromInnerAddressImpl {
* type. * type.
*/ */
template <typename T> template <typename T>
struct TraceTrait { struct TraceTraitBase {
static_assert(internal::IsTraceableV<T>, "T must have a Trace() method"); static_assert(internal::IsTraceableV<T>, "T must have a Trace() method");
/** /**
...@@ -89,6 +87,11 @@ struct TraceTrait { ...@@ -89,6 +87,11 @@ struct TraceTrait {
} }
}; };
} // namespace internal
template <typename T>
struct TraceTrait : public internal::TraceTraitBase<T> {};
namespace internal { namespace internal {
template <typename T> template <typename T>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment