diff options
| author | 2020-08-07 23:34:42 +0000 | |
|---|---|---|
| committer | 2020-08-07 23:34:42 +0000 | |
| commit | faa0b79d68e85f87546cc0ae65386c59b93f10f0 (patch) | |
| tree | 5b036994870e65db0e819eb541db245a4ff6a515 /libs/gui/BitTube.cpp | |
| parent | 30a2c45283ec51788084c2d516c9115fff733d0c (diff) | |
| parent | 864d48037d8cee84d0c1a7d9044153c9d757f2e0 (diff) | |
Fix refresh rate callback fan-out for choreographer am: c080030e71 am: 864d48037d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12329047
Change-Id: Ic0ca0a1cead095aa0ba3fa04dcf856d15327348f
Diffstat (limited to 'libs/gui/BitTube.cpp')
| -rw-r--r-- | libs/gui/BitTube.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/gui/BitTube.cpp b/libs/gui/BitTube.cpp index ef7a6f54d9..351af652e2 100644 --- a/libs/gui/BitTube.cpp +++ b/libs/gui/BitTube.cpp @@ -86,6 +86,10 @@ void BitTube::setReceiveFd(base::unique_fd&& receiveFd) { mReceiveFd = std::move(receiveFd); } +void BitTube::setSendFd(base::unique_fd&& sendFd) { + mSendFd = std::move(sendFd); +} + ssize_t BitTube::write(void const* vaddr, size_t size) { ssize_t err, len; do { @@ -115,6 +119,11 @@ status_t BitTube::writeToParcel(Parcel* reply) const { status_t result = reply->writeDupFileDescriptor(mReceiveFd); mReceiveFd.reset(); + if (result != NO_ERROR) { + return result; + } + result = reply->writeDupFileDescriptor(mSendFd); + mSendFd.reset(); return result; } @@ -126,6 +135,13 @@ status_t BitTube::readFromParcel(const Parcel* parcel) { ALOGE("BitTube::readFromParcel: can't dup file descriptor (%s)", strerror(error)); return -error; } + mSendFd.reset(dup(parcel->readFileDescriptor())); + if (mSendFd < 0) { + mSendFd.reset(); + int error = errno; + ALOGE("BitTube::readFromParcel: can't dup file descriptor (%s)", strerror(error)); + return -error; + } return NO_ERROR; } |