From a95435b836a09084b213ba0809eba7d37825cd5e Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Thu, 23 Aug 2018 16:58:18 -0700 Subject: [PATCH 1/2] RenderThread: Make ~IFrameCallback() virtual IFrameCallback has a pure virtual method, but its destructor was non-virtual. While CanvasContext, which inherits from IFrameCallback, declares its own destructor virtual, this is not sufficient when accessing via an IFrameCallback pointer. We fix this by making the base destructor virtual. Test: Treehugger Change-Id: I6424f90c16caea417b5f80b60d76a7ca7c7ef97c --- libs/hwui/renderthread/RenderThread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h index 689f518bad1b3..e9c2649179050 100644 --- a/libs/hwui/renderthread/RenderThread.h +++ b/libs/hwui/renderthread/RenderThread.h @@ -59,7 +59,7 @@ public: virtual void doFrame() = 0; protected: - ~IFrameCallback() {} + virtual ~IFrameCallback() {} }; struct VsyncSource { From 174b50fa506b0d33551670cbc595412bf943113c Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Thu, 23 Aug 2018 17:02:39 -0700 Subject: [PATCH 2/2] TreeInfo: Make ~ErrorHandler() virtual ErrorHandler has a pure virtual function, so we also make its destructor virtual, to assure any children classes will get properly destructed. Test: TreeHugger Change-Id: Ie072511b450d507f8764b0888d232ffac8f6d6f5 --- libs/hwui/TreeInfo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/hwui/TreeInfo.h b/libs/hwui/TreeInfo.h index b37f2cfe7fee4..f2766d6a5b6e2 100644 --- a/libs/hwui/TreeInfo.h +++ b/libs/hwui/TreeInfo.h @@ -39,7 +39,7 @@ public: virtual void onError(const std::string& message) = 0; protected: - ~ErrorHandler() {} + virtual ~ErrorHandler() {} }; class TreeObserver {