summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Buckley <mattbuckley@google.com>2023-08-24 15:56:46 +0000
committerMatt Buckley <mattbuckley@google.com>2023-08-30 11:12:03 -0700
commit5fdfd60ff76714e6978e9da87ec4321cb98b2ee7 (patch)
tree87103c872638b91346f660ba7a48ffc2e542a8dc
parent0de10414b2dc58fbf44e7f423cb69a4cdf15f860 (diff)
downloadbase-5fdfd60ff76714e6978e9da87ec4321cb98b2ee7.tar.gz
Fix possible leaks in CanvasContext HintSessionWrapper
Ensure the mHintSessionFuture is accounted for correctly in the destructor. Bug: b/297230599 Test: manual Change-Id: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95 Merged-In: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95 (cherry picked from commit ac620f64a32500890007b0b405ca72405d6db41e)
-rw-r--r--libs/hwui/renderthread/HintSessionWrapper.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/HintSessionWrapper.cpp b/libs/hwui/renderthread/HintSessionWrapper.cpp
index 814ac4d90028..30e472a79926 100644
--- a/libs/hwui/renderthread/HintSessionWrapper.cpp
+++ b/libs/hwui/renderthread/HintSessionWrapper.cpp
@@ -93,8 +93,13 @@ HintSessionWrapper::HintSessionWrapper(pid_t uiThreadId, pid_t renderThreadId)
: mUiThreadId(uiThreadId), mRenderThreadId(renderThreadId) {}
HintSessionWrapper::~HintSessionWrapper() {
+ if (mHintSessionFuture.valid()) {
+ mHintSession = mHintSessionFuture.get();
+ }
if (mHintSession) {
gAPH_closeSessionFn(mHintSession);
+ mSessionValid = true;
+ mHintSession = nullptr;
}
}