From 459afe96d13876c1fbeacb1f0d4bd0eddb7342e0 Mon Sep 17 00:00:00 2001 From: Pirama Arumuga Nainar Date: Thu, 7 Feb 2019 13:24:24 -0800 Subject: [PATCH] Mark FrameMetricsObserver::notify() as pure virtual Bug: http://b/116873221 If not, Clang assumes that the TU which defines this function will contain the vtable for the class as well. Since there's no out-of-line definition of this funciton, no TU ends up with the vtable. This causes a problem with coverage builds, which are built with -O0, where calls don't get inlined, thereby requiring a definition of the vtable. For non -O0 builds, the vtable is not required since the virtual calls get inlined/optimized-out. Test: Build with and without -O0. Change-Id: I60a5cefcd1c327f1e00785fedbb2163c682b33d1 --- libs/hwui/FrameMetricsObserver.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/hwui/FrameMetricsObserver.h b/libs/hwui/FrameMetricsObserver.h index ba72e937095f8..0b9ae5cb4b7b3 100644 --- a/libs/hwui/FrameMetricsObserver.h +++ b/libs/hwui/FrameMetricsObserver.h @@ -23,7 +23,7 @@ namespace uirenderer { class FrameMetricsObserver : public VirtualLightRefBase { public: - virtual void notify(const int64_t* buffer); + virtual void notify(const int64_t* buffer) = 0; }; }; // namespace uirenderer