aboutsummaryrefslogtreecommitdiff
path: root/include/perfetto/tracing/track_event_interned_data_index.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/perfetto/tracing/track_event_interned_data_index.h')
-rw-r--r--include/perfetto/tracing/track_event_interned_data_index.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/perfetto/tracing/track_event_interned_data_index.h b/include/perfetto/tracing/track_event_interned_data_index.h
index be4c12868..cce266578 100644
--- a/include/perfetto/tracing/track_event_interned_data_index.h
+++ b/include/perfetto/tracing/track_event_interned_data_index.h
@@ -170,8 +170,12 @@ class TrackEventInternedDataIndex
: public internal::BaseTrackEventInternedDataIndex {
public:
// Return an interning id for |value|. The returned id can be immediately
- // written to the trace.
- static size_t Get(EventContext* ctx, const ValueType& value) {
+ // written to the trace. The optional |add_args| are passed to the Add()
+ // function.
+ template <typename... Args>
+ static size_t Get(EventContext* ctx,
+ const ValueType& value,
+ Args&&... add_args) {
// First check if the value exists in the dictionary.
auto index_for_field = GetOrCreateIndexForField(ctx->incremental_state_);
size_t iid;
@@ -186,7 +190,7 @@ class TrackEventInternedDataIndex
PERFETTO_DCHECK(iid);
InternedDataType::Add(
ctx->incremental_state_->serialized_interned_data.get(), iid,
- std::move(value));
+ std::move(value), std::forward<Args>(add_args)...);
return iid;
}