diff options
author | John Reck <jreck@google.com> | 2021-06-25 19:00:24 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-25 19:00:24 +0000 |
commit | e947e2e20a0a19be6f98de9b7e3b70909904a7bb (patch) | |
tree | 3e51188f7b599a56a1a9ede8b772b8669980a884 /libs/hwui | |
parent | 5256a6fdb7e656dbe3f6cc2e033b8a9efacb6a6a (diff) | |
parent | f0b6921e894922b28143b281d006dee1285258f6 (diff) |
Merge "Revert "Delete RenderProxy off of the cleaner thread"" into sc-dev
Diffstat (limited to 'libs/hwui')
-rw-r--r-- | libs/hwui/jni/android_graphics_HardwareRenderer.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.cpp | 12 | ||||
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.h | 8 |
3 files changed, 3 insertions, 19 deletions
diff --git a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp index b2ff38cc4e23..4d31cd90d40f 100644 --- a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp +++ b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp @@ -247,7 +247,7 @@ static jlong android_view_ThreadedRenderer_createProxy(JNIEnv* env, jobject claz static void android_view_ThreadedRenderer_deleteProxy(JNIEnv* env, jobject clazz, jlong proxyPtr) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); - RenderProxy::asyncDelete(proxy); + delete proxy; } static jboolean android_view_ThreadedRenderer_loadSystemProperties(JNIEnv* env, jobject clazz, diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index e538a92fbd97..a77b5b569907 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -26,7 +26,6 @@ #include "renderthread/CanvasContext.h" #include "renderthread/RenderTask.h" #include "renderthread/RenderThread.h" -#include "thread/CommonPool.h" #include "utils/Macros.h" #include "utils/TimeUtils.h" @@ -43,17 +42,6 @@ RenderProxy::RenderProxy(bool translucent, RenderNode* rootRenderNode, mDrawFrameTask.setContext(&mRenderThread, mContext, rootRenderNode); } -void RenderProxy::asyncDelete(RenderProxy* proxy) { - if (!proxy) return; - - if (proxy->mContext) { - // Use the common pool because ~RenderProxy blocks on calling into RenderThread - CommonPool::post([proxy]() { delete proxy; }); - } else { - delete proxy; - } -} - RenderProxy::~RenderProxy() { destroyContext(); } diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h index 5f6b5cde652d..1b0f22e75a2d 100644 --- a/libs/hwui/renderthread/RenderProxy.h +++ b/libs/hwui/renderthread/RenderProxy.h @@ -62,14 +62,10 @@ enum { * references RenderProxy fields. This is safe as RenderProxy cannot * be deleted if it is blocked inside a call. */ -class RenderProxy final { +class RenderProxy { public: RenderProxy(bool opaque, RenderNode* rootNode, IContextFactory* contextFactory); - ~RenderProxy(); - - // Schedules a delete of the RenderProxy at a later date. Avoids blocking the current thread - // on destruction which ~RenderProxy does by default. - static void asyncDelete(RenderProxy*); + virtual ~RenderProxy(); // Won't take effect until next EGLSurface creation void setSwapBehavior(SwapBehavior swapBehavior); |