Loading media/libaaudio/src/binding/SharedMemoryParcelable.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ status_t SharedMemoryParcelable::writeToParcel(Parcel* parcel) const { if (status != NO_ERROR) return status; if (mSizeInBytes > 0) { status = parcel->writeDupFileDescriptor(mFd); ALOGE_IF(status != NO_ERROR, "SharedMemoryParcelable writeDupFileDescriptor failed : %d", status); ALOGE_IF(status != NO_ERROR, "SharedMemoryParcelable writeDupFileDescriptor failed : %d", status); } return status; } Loading @@ -61,11 +62,13 @@ status_t SharedMemoryParcelable::readFromParcel(const Parcel* parcel) { return status; } if (mSizeInBytes > 0) { int originalFD = parcel->readFileDescriptor(); mFd = fcntl(originalFD, F_DUPFD_CLOEXEC, 0); mOriginalFd = parcel->readFileDescriptor(); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mOriginalFd = %d\n", mOriginalFd); mFd = fcntl(mOriginalFd, F_DUPFD_CLOEXEC, 0); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); if (mFd == -1) { status = -errno; ALOGE("SharedMemoryParcelable readFileDescriptor fcntl() failed : %d", status); ALOGE("SharedMemoryParcelable readFromParcel fcntl() failed : %d", status); } } return status; Loading @@ -81,9 +84,15 @@ aaudio_result_t SharedMemoryParcelable::close() { mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; } if (mFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ::close(mFd); mFd = -1; } if (mOriginalFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mOriginalFd = %d\n", mOriginalFd); ::close(mOriginalFd); mOriginalFd = -1; } return AAUDIO_OK; } Loading media/libaaudio/src/binding/SharedMemoryParcelable.h +3 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ protected: #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) int mFd = -1; int mOriginalFd = -1; int32_t mSizeInBytes = 0; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; }; Loading services/oboeservice/AAudioServiceStreamBase.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ aaudio_result_t AAudioServiceStreamBase::close() { std::lock_guard<std::mutex> lock(mLockUpMessageQueue); delete mUpMessageQueue; mUpMessageQueue = nullptr; return AAUDIO_OK; } Loading services/oboeservice/AAudioServiceStreamBase.h +0 −3 Original line number Diff line number Diff line Loading @@ -133,9 +133,6 @@ protected: // This is used by one thread to tell another thread to exit. So it must be atomic. std::atomic<bool> mThreadEnabled; int mAudioDataFileDescriptor = -1; aaudio_audio_format_t mAudioFormat = AAUDIO_FORMAT_UNSPECIFIED; int32_t mFramesPerBurst = 0; int32_t mSamplesPerFrame = AAUDIO_UNSPECIFIED; Loading services/oboeservice/AAudioServiceStreamMMAP.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,13 @@ aaudio_result_t AAudioServiceStreamMMAP::close() { // FIXME Make closing synchronous. AudioClock::sleepForNanos(100 * AAUDIO_NANOS_PER_MILLISECOND); if (mAudioDataFileDescriptor != -1) { ALOGV("AAudioServiceStreamMMAP: LEAK? close(mAudioDataFileDescriptor = %d)\n", mAudioDataFileDescriptor); ::close(mAudioDataFileDescriptor); mAudioDataFileDescriptor = -1; } return AAudioServiceStreamBase::close(); } Loading Loading @@ -164,6 +171,8 @@ aaudio_result_t AAudioServiceStreamMMAP::open(const aaudio::AAudioStreamRequest : audio_channel_count_from_in_mask(config.channel_mask); mAudioDataFileDescriptor = mMmapBufferinfo.shared_memory_fd; ALOGV("AAudioServiceStreamMMAP::open LEAK? mAudioDataFileDescriptor = %d\n", mAudioDataFileDescriptor); mFramesPerBurst = mMmapBufferinfo.burst_size_frames; mCapacityInFrames = mMmapBufferinfo.buffer_size_frames; mAudioFormat = AAudioConvert_androidToAAudioDataFormat(config.format); Loading Loading
media/libaaudio/src/binding/SharedMemoryParcelable.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ status_t SharedMemoryParcelable::writeToParcel(Parcel* parcel) const { if (status != NO_ERROR) return status; if (mSizeInBytes > 0) { status = parcel->writeDupFileDescriptor(mFd); ALOGE_IF(status != NO_ERROR, "SharedMemoryParcelable writeDupFileDescriptor failed : %d", status); ALOGE_IF(status != NO_ERROR, "SharedMemoryParcelable writeDupFileDescriptor failed : %d", status); } return status; } Loading @@ -61,11 +62,13 @@ status_t SharedMemoryParcelable::readFromParcel(const Parcel* parcel) { return status; } if (mSizeInBytes > 0) { int originalFD = parcel->readFileDescriptor(); mFd = fcntl(originalFD, F_DUPFD_CLOEXEC, 0); mOriginalFd = parcel->readFileDescriptor(); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mOriginalFd = %d\n", mOriginalFd); mFd = fcntl(mOriginalFd, F_DUPFD_CLOEXEC, 0); ALOGV("SharedMemoryParcelable::readFromParcel() LEAK? mFd = %d\n", mFd); if (mFd == -1) { status = -errno; ALOGE("SharedMemoryParcelable readFileDescriptor fcntl() failed : %d", status); ALOGE("SharedMemoryParcelable readFromParcel fcntl() failed : %d", status); } } return status; Loading @@ -81,9 +84,15 @@ aaudio_result_t SharedMemoryParcelable::close() { mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; } if (mFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mFd = %d\n", mFd); ::close(mFd); mFd = -1; } if (mOriginalFd != -1) { ALOGV("SharedMemoryParcelable::close() LEAK? mOriginalFd = %d\n", mOriginalFd); ::close(mOriginalFd); mOriginalFd = -1; } return AAUDIO_OK; } Loading
media/libaaudio/src/binding/SharedMemoryParcelable.h +3 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ protected: #define MMAP_UNRESOLVED_ADDRESS reinterpret_cast<uint8_t*>(MAP_FAILED) int mFd = -1; int mOriginalFd = -1; int32_t mSizeInBytes = 0; uint8_t *mResolvedAddress = MMAP_UNRESOLVED_ADDRESS; }; Loading
services/oboeservice/AAudioServiceStreamBase.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ aaudio_result_t AAudioServiceStreamBase::close() { std::lock_guard<std::mutex> lock(mLockUpMessageQueue); delete mUpMessageQueue; mUpMessageQueue = nullptr; return AAUDIO_OK; } Loading
services/oboeservice/AAudioServiceStreamBase.h +0 −3 Original line number Diff line number Diff line Loading @@ -133,9 +133,6 @@ protected: // This is used by one thread to tell another thread to exit. So it must be atomic. std::atomic<bool> mThreadEnabled; int mAudioDataFileDescriptor = -1; aaudio_audio_format_t mAudioFormat = AAUDIO_FORMAT_UNSPECIFIED; int32_t mFramesPerBurst = 0; int32_t mSamplesPerFrame = AAUDIO_UNSPECIFIED; Loading
services/oboeservice/AAudioServiceStreamMMAP.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,13 @@ aaudio_result_t AAudioServiceStreamMMAP::close() { // FIXME Make closing synchronous. AudioClock::sleepForNanos(100 * AAUDIO_NANOS_PER_MILLISECOND); if (mAudioDataFileDescriptor != -1) { ALOGV("AAudioServiceStreamMMAP: LEAK? close(mAudioDataFileDescriptor = %d)\n", mAudioDataFileDescriptor); ::close(mAudioDataFileDescriptor); mAudioDataFileDescriptor = -1; } return AAudioServiceStreamBase::close(); } Loading Loading @@ -164,6 +171,8 @@ aaudio_result_t AAudioServiceStreamMMAP::open(const aaudio::AAudioStreamRequest : audio_channel_count_from_in_mask(config.channel_mask); mAudioDataFileDescriptor = mMmapBufferinfo.shared_memory_fd; ALOGV("AAudioServiceStreamMMAP::open LEAK? mAudioDataFileDescriptor = %d\n", mAudioDataFileDescriptor); mFramesPerBurst = mMmapBufferinfo.burst_size_frames; mCapacityInFrames = mMmapBufferinfo.buffer_size_frames; mAudioFormat = AAudioConvert_androidToAAudioDataFormat(config.format); Loading