[Blink/WTF] Fix operator new usage Fix operator new resolution failures in: - third_party/blink/renderer/platform/wtf/construct_traits.h - third_party/blink/renderer/platform/wtf/thread_specific.h They intend to call the global operator defined in third_party/blink/renderer/platform/wtf/allocator/allocator.h But the operator resolution may fail if |T| has user-defined operator new(). https://godbolt.org/z/zxnYEj4We Change-Id: Id97a570e098404348e7a50fcdfba459229a71eef Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4727836 Auto-Submit: Mikihito Matsuura <mikt@google.com> Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/main@{#1176551}
diff --git a/third_party/blink/renderer/platform/wtf/construct_traits.h b/third_party/blink/renderer/platform/wtf/construct_traits.h index 3a8203a..e5a409b 100644 --- a/third_party/blink/renderer/platform/wtf/construct_traits.h +++ b/third_party/blink/renderer/platform/wtf/construct_traits.h
@@ -23,7 +23,8 @@ // placement new. template <typename... Args> static T* Construct(void* location, Args&&... args) { - return new (NotNullTag::kNotNull, location) T(std::forward<Args>(args)...); + return ::new (NotNullTag::kNotNull, location) + T(std::forward<Args>(args)...); } // After constructing elements using memcopy or memmove (or similar)
diff --git a/third_party/blink/renderer/platform/wtf/thread_specific.h b/third_party/blink/renderer/platform/wtf/thread_specific.h index 124caaef..05247e1 100644 --- a/third_party/blink/renderer/platform/wtf/thread_specific.h +++ b/third_party/blink/renderer/platform/wtf/thread_specific.h
@@ -133,7 +133,7 @@ } Set(*ptr); - new (NotNullTag::kNotNull, *ptr) T; + ::new (NotNullTag::kNotNull, *ptr) T; } return *ptr; }