From 91697e13fff4c07e4e7c75013c94992cf5a92574 Mon Sep 17 00:00:00 2001 From: Huihong Luo Date: Thu, 28 Jan 2021 15:24:19 -0800 Subject: [PATCH] Add ASurfaceControl_acquire api hwui needs this api to hold a reference to a surface control object passed from java layer. Bug: 173671170 Test: manual Change-Id: I2b8417c289718bb1b99af47d7828e91b16785123 --- native/android/libandroid.map.txt | 1 + native/android/surface_control.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt index 314bf29101554..7a18bd5ae9622 100644 --- a/native/android/libandroid.map.txt +++ b/native/android/libandroid.map.txt @@ -225,6 +225,7 @@ LIBANDROID { AStorageManager_unmountObb; ASurfaceControl_create; # introduced=29 ASurfaceControl_createFromWindow; # introduced=29 + ASurfaceControl_acquire; # introduced=31 ASurfaceControl_release; # introduced=29 ASurfaceTexture_acquireANativeWindow; # introduced=28 ASurfaceTexture_attachToGLContext; # introduced=28 diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp index 189be800e0189..c1b5f1ddd4233 100644 --- a/native/android/surface_control.cpp +++ b/native/android/surface_control.cpp @@ -185,10 +185,16 @@ ASurfaceControl* ASurfaceControl_create(ASurfaceControl* parent, const char* deb return reinterpret_cast(surfaceControl.get()); } -void ASurfaceControl_release(ASurfaceControl* aSurfaceControl) { - sp surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); +void ASurfaceControl_acquire(ASurfaceControl* aSurfaceControl) { + SurfaceControl* surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); - SurfaceControl_release(surfaceControl.get()); + SurfaceControl_acquire(surfaceControl); +} + +void ASurfaceControl_release(ASurfaceControl* aSurfaceControl) { + SurfaceControl* surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); + + SurfaceControl_release(surfaceControl); } ASurfaceTransaction* ASurfaceTransaction_create() {