diff --git a/liboverlay/overlayLibUI.cpp b/liboverlay/overlayLibUI.cpp index ea3bfaf..c7e9f09 100755 --- a/liboverlay/overlayLibUI.cpp +++ b/liboverlay/overlayLibUI.cpp @@ -126,7 +126,7 @@ void Display::closeDisplay() { mFD = NO_INIT; } -Rotator::Rotator() : mFD(NO_INIT), mSessionID(NO_INIT), mPmemFD(-1) +Rotator::Rotator() : mFD(NO_INIT), mSessionID(NO_INIT), mPmemFD(NO_INIT) { mAlloc = gralloc::IAllocController::getInstance(false); } @@ -191,9 +191,11 @@ status_t Rotator::closeRotSession() { if (mSessionID != NO_INIT && mFD != NO_INIT) { ioctl(mFD, MSM_ROTATOR_IOCTL_FINISH, &mSessionID); close(mFD); - sp memalloc = mAlloc->getAllocator(mBufferType); - memalloc->free_buffer(mPmemAddr, mSize * mNumBuffers, 0, mPmemFD); - close(mPmemFD); + if (NO_INIT != mPmemFD) { + sp memalloc = mAlloc->getAllocator(mBufferType); + memalloc->free_buffer(mPmemAddr, mSize * mNumBuffers, 0, mPmemFD); + close(mPmemFD); + } } mFD = NO_INIT;