surfaceflinger: manage RenderEngine with unique_ptr
Test: SurfaceFlinger_test
Change-Id: I603a399b88963acdcd154f721fe64bf59d9032fd
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index 56e9ac0..2dd4135 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -47,7 +47,8 @@
return false;
}
-RenderEngine* RenderEngine::create(EGLDisplay display, int hwcFormat, uint32_t featureFlags) {
+std::unique_ptr<RenderEngine> RenderEngine::create(EGLDisplay display,
+ int hwcFormat, uint32_t featureFlags) {
// EGL_ANDROIDX_no_config_context is an experimental extension with no
// written specification. It will be replaced by something more formal.
// SurfaceFlinger is using it to allow a single EGLContext to render to
@@ -127,7 +128,7 @@
// initialize the renderer while GL is current
- RenderEngine* engine = NULL;
+ std::unique_ptr<RenderEngine> engine;
switch (version) {
case GLES_VERSION_1_0:
case GLES_VERSION_1_1:
@@ -135,7 +136,7 @@
break;
case GLES_VERSION_2_0:
case GLES_VERSION_3_0:
- engine = new GLES20RenderEngine(featureFlags);
+ engine = std::make_unique<GLES20RenderEngine>(featureFlags);
break;
}
engine->setEGLHandles(config, ctxt);