liboverlay: ensure open fd's are always closed
Ensures that reset and mFd.Close is always called when MdpCtrl
and MdpData are closed down.
Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>
Change-Id: I775ba7cfe45c67e6acf874e3f4e8b4fa6fbe33b8
diff --git a/liboverlay/overlayMdp.cpp b/liboverlay/overlayMdp.cpp
index 6fd1eb8..c795b99 100644
--- a/liboverlay/overlayMdp.cpp
+++ b/liboverlay/overlayMdp.cpp
@@ -43,17 +43,21 @@
}
bool MdpCtrl::close() {
- if(MSMFB_NEW_REQUEST == static_cast<int>(mOVInfo.id))
- return true;
- if(!mdp_wrapper::unsetOverlay(mFd.getFD(), mOVInfo.id)) {
- ALOGE("MdpCtrl close error in unset");
- return false;
+ bool result = true;
+
+ if(MSMFB_NEW_REQUEST != static_cast<int>(mOVInfo.id)) {
+ if(!mdp_wrapper::unsetOverlay(mFd.getFD(), mOVInfo.id)) {
+ ALOGE("MdpCtrl close error in unset");
+ result = false;
+ }
}
+
reset();
if(!mFd.close()) {
- return false;
+ result = false;
}
- return true;
+
+ return result;
}
bool MdpCtrl::setSource(const utils::PipeArgs& args) {