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;