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)
diff --git a/libs/hwui/renderthread/HintSessionWrapper.cpp b/libs/hwui/renderthread/HintSessionWrapper.cpp
index 814ac4d..30e472a 100644
--- a/libs/hwui/renderthread/HintSessionWrapper.cpp
+++ b/libs/hwui/renderthread/HintSessionWrapper.cpp
@@ -93,8 +93,13 @@
: mUiThreadId(uiThreadId), mRenderThreadId(renderThreadId) {}
HintSessionWrapper::~HintSessionWrapper() {
+ if (mHintSessionFuture.valid()) {
+ mHintSession = mHintSessionFuture.get();
+ }
if (mHintSession) {
gAPH_closeSessionFn(mHintSession);
+ mSessionValid = true;
+ mHintSession = nullptr;
}
}