Merge "libqdutils: delay the close of fd handle"
diff --git a/libqdutils/mdp_version.cpp b/libqdutils/mdp_version.cpp
index 04dcf9f..1dd317f 100644
--- a/libqdutils/mdp_version.cpp
+++ b/libqdutils/mdp_version.cpp
@@ -50,6 +50,7 @@
mFeatures = 0;
//TODO get this from driver, default for A-fam to 8
mMDPDownscale = 8;
+ mFd = fb_fd;
if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &fb_finfo) < 0) {
ALOGE("FBIOGET_FSCREENINFO failed");
@@ -103,7 +104,6 @@
panel_type = *ptype;
}
mPanelType = panel_type;
- close(fb_fd);
mMDPVersion = mdp_version;
mHasOverlay = false;
if((mMDPVersion >= MDP_V4_0) ||
@@ -135,6 +135,10 @@
}
}
+MDPVersion::~MDPVersion() {
+ close(mFd);
+}
+
bool MDPVersion::supportsDecimation() {
return mFeatures & MDP_DECIMATION_EN;
}
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index e26f4d3..316899f 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -89,7 +89,7 @@
{
public:
MDPVersion();
- ~MDPVersion() { }
+ ~MDPVersion();
int getMDPVersion() {return mMDPVersion;}
char getPanelType() {return mPanelType;}
bool hasOverlay() {return mHasOverlay;}
@@ -104,6 +104,7 @@
int getLeftSplit() { return mSplit.left(); }
int getRightSplit() { return mSplit.right(); }
private:
+ int mFd;
int mMDPVersion;
char mPanelType;
bool mHasOverlay;