Loading media/libaaudio/src/binding/SharedMemoryParcelable.cpp +8 −9 Original line number Original line Diff line number Diff line Loading @@ -64,9 +64,9 @@ status_t SharedMemoryParcelable::readFromParcel(const Parcel* parcel) { if (mSizeInBytes > 0) { if (mSizeInBytes > 0) { // Keep the original FD until you are done with the mFd. // Keep the original FD until you are done with the mFd. // If you close it in here then it will prevent mFd from working. // If you close it in here then it will prevent mFd from working. mOriginalFd = parcel->readFileDescriptor(); int originalFd = parcel->readFileDescriptor(); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mOriginalFd = %d\n", mOriginalFd); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? originalFd = %d\n", originalFd); mFd = fcntl(mOriginalFd, F_DUPFD_CLOEXEC, 0); mFd = fcntl(originalFd, F_DUPFD_CLOEXEC, 0); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); if (mFd == -1) { if (mFd == -1) { status = -errno; status = -errno; Loading @@ -87,13 +87,12 @@ aaudio_result_t SharedMemoryParcelable::close() { } } if (mFd != -1) { if (mFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ::close(mFd); if(::close(mFd) < 0) { mFd = -1; int err = errno; ALOGE("SharedMemoryParcelable close failed for fd = %d, errno = %d (%s)", mFd, err, strerror(err)); } } if (mOriginalFd != -1) { mFd = -1; ALOGV("SharedMemoryParcelable::close() LEAK? mOriginalFd = %d\n", mOriginalFd); ::close(mOriginalFd); mOriginalFd = -1; } } return AAUDIO_OK; return AAUDIO_OK; } } Loading media/libaaudio/src/binding/SharedMemoryParcelable.h +0 −1 Original line number Original line Diff line number Diff line Loading @@ -68,7 +68,6 @@ protected: #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) int mFd = -1; int mFd = -1; int mOriginalFd = -1; int32_t mSizeInBytes = 0; int32_t mSizeInBytes = 0; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; }; }; Loading Loading
media/libaaudio/src/binding/SharedMemoryParcelable.cpp +8 −9 Original line number Original line Diff line number Diff line Loading @@ -64,9 +64,9 @@ status_t SharedMemoryParcelable::readFromParcel(const Parcel* parcel) { if (mSizeInBytes > 0) { if (mSizeInBytes > 0) { // Keep the original FD until you are done with the mFd. // Keep the original FD until you are done with the mFd. // If you close it in here then it will prevent mFd from working. // If you close it in here then it will prevent mFd from working. mOriginalFd = parcel->readFileDescriptor(); int originalFd = parcel->readFileDescriptor(); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mOriginalFd = %d\n", mOriginalFd); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? originalFd = %d\n", originalFd); mFd = fcntl(mOriginalFd, F_DUPFD_CLOEXEC, 0); mFd = fcntl(originalFd, F_DUPFD_CLOEXEC, 0); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); if (mFd == -1) { if (mFd == -1) { status = -errno; status = -errno; Loading @@ -87,13 +87,12 @@ aaudio_result_t SharedMemoryParcelable::close() { } } if (mFd != -1) { if (mFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ::close(mFd); if(::close(mFd) < 0) { mFd = -1; int err = errno; ALOGE("SharedMemoryParcelable close failed for fd = %d, errno = %d (%s)", mFd, err, strerror(err)); } } if (mOriginalFd != -1) { mFd = -1; ALOGV("SharedMemoryParcelable::close() LEAK? mOriginalFd = %d\n", mOriginalFd); ::close(mOriginalFd); mOriginalFd = -1; } } return AAUDIO_OK; return AAUDIO_OK; } } Loading
media/libaaudio/src/binding/SharedMemoryParcelable.h +0 −1 Original line number Original line Diff line number Diff line Loading @@ -68,7 +68,6 @@ protected: #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) int mFd = -1; int mFd = -1; int mOriginalFd = -1; int32_t mSizeInBytes = 0; int32_t mSizeInBytes = 0; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; }; }; Loading