Patch status: fixed in >=chromium-127.0.6524.0 https://bugs.gentoo.org/937541 https://github.com/google/perfetto/commit/e2f661907a717551235563389977b7468da6d45e https://android-review.googlesource.com/c/platform/external/perfetto/+/3114454 https://chromium-review.googlesource.com/c/chromium/src/+/5604664 --- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h +++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h @@ -1647,5 +1647,5 @@ } table_ = temporary_table; - Allocator::template BackingWriteBarrier(&table_); + Allocator::BackingWriteBarrier(&table_); HashTableBucketInitializer::InitializeTable( @@ -1701,5 +1701,5 @@ // the current table has to be atomic to prevent races with concurrent marker. AsAtomicPtr(&table_)->store(new_hash_table.table_, std::memory_order_relaxed); - Allocator::template BackingWriteBarrier(&table_); + Allocator::BackingWriteBarrier(&table_); table_size_ = new_table_size; @@ -1853,6 +1853,6 @@ // there is *no* risk of data races when reading. AtomicWriteSwap(table_, other.table_); - Allocator::template BackingWriteBarrier(&table_); - Allocator::template BackingWriteBarrier(&other.table_); + Allocator::BackingWriteBarrier(&table_); + Allocator::BackingWriteBarrier(&other.table_); if (IsWeak::value) { // Weak processing is omitted when no backing store is present. In case such --- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h +++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h @@ -329,5 +329,5 @@ static void Flush() { - Base::template Trace([](typename Base::TraceContext ctx) { ctx.Flush(); }); + Base::Trace([](typename Base::TraceContext ctx) { ctx.Flush(); }); } @@ -335,6 +335,5 @@ static bool IsEnabled() { bool enabled = false; - Base::template CallIfEnabled( - [&](uint32_t /*instances*/) { enabled = true; }); + Base::CallIfEnabled([&](uint32_t /*instances*/) { enabled = true; }); return enabled; } @@ -350,5 +349,5 @@ const DynamicCategory& dynamic_category) { bool enabled = false; - Base::template Trace([&](typename Base::TraceContext ctx) { + Base::Trace([&](typename Base::TraceContext ctx) { enabled = enabled || IsDynamicCategoryEnabled(&ctx, dynamic_category); }); @@ -497,5 +496,5 @@ PERFETTO_DCHECK(track.uuid == desc.uuid()); TrackRegistry::Get()->UpdateTrack(track, desc.SerializeAsString()); - Base::template Trace([&](typename Base::TraceContext ctx) { + Base::Trace([&](typename Base::TraceContext ctx) { TrackEventInternal::WriteTrackDescriptor( track, ctx.tls_inst_->trace_writer.get(), ctx.GetIncrementalState(), @@ -1048,5 +1047,5 @@ using CatTraits = CategoryTraits; if (CatTraits::kIsDynamic) { - Base::template TraceWithInstances(instances, std::move(lambda)); + Base::TraceWithInstances(instances, std::move(lambda)); } else { Base::template TraceWithInstances( @@ -1062,5 +1061,5 @@ std::function callback) { TrackRegistry::Get()->UpdateTrack(track, std::move(callback)); - Base::template Trace([&](typename Base::TraceContext ctx) { + Base::Trace([&](typename Base::TraceContext ctx) { TrackEventInternal::WriteTrackDescriptor( track, ctx.tls_inst_->trace_writer.get(), ctx.GetIncrementalState(),