Fix undefined symbol error in C++20.
For some reason I don't understand, inlining the histogram macro in the
header results in an undefined symbol relating to atomics when in C++20
mode. Fix it by out-of-lining the function.
Bug: 1284275
Change-Id: I5d2c26cd0a06b49e1f5cc6a34158e01056cb66f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3782985
Reviewed-by: Khushal Sagar <khushalsagar@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Khushal Sagar <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1027858}
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
index 4e546db5..61e25f9 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
@@ -1123,4 +1123,12 @@
return nullptr;
}
+void PaintArtifactCompositor::SetNeedsUpdate(
+ PaintArtifactCompositorUpdateReason reason) {
+ UMA_HISTOGRAM_ENUMERATION("Blink.Paint.PaintArtifactCompositorUpdateReason",
+ reason,
+ PaintArtifactCompositorUpdateReason::kCount);
+ needs_update_ = true;
+}
+
} // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
index dc447d0..96f78b0 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
@@ -217,12 +217,7 @@
// do not affect compositing can use a fast-path in |UpdateRepaintedLayers|
// (see comment above that function for more information), and should not call
// SetNeedsUpdate.
- void SetNeedsUpdate(PaintArtifactCompositorUpdateReason reason) {
- UMA_HISTOGRAM_ENUMERATION("Blink.Paint.PaintArtifactCompositorUpdateReason",
- reason,
- PaintArtifactCompositorUpdateReason::kCount);
- needs_update_ = true;
- }
+ void SetNeedsUpdate(PaintArtifactCompositorUpdateReason reason);
bool NeedsUpdate() const { return needs_update_; }
void ClearNeedsUpdateForTesting() { needs_update_ = false; }