diff options
author | Matt Buckley <mattbuckley@google.com> | 2023-08-24 15:56:46 +0000 |
---|---|---|
committer | Matt Buckley <mattbuckley@google.com> | 2023-08-30 11:12:03 -0700 |
commit | 5fdfd60ff76714e6978e9da87ec4321cb98b2ee7 (patch) | |
tree | 87103c872638b91346f660ba7a48ffc2e542a8dc | |
parent | 0de10414b2dc58fbf44e7f423cb69a4cdf15f860 (diff) | |
download | base-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.cpp | 5 |
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; } } |