diff options
| author | Steven Moreland <smoreland@google.com> | 2019-05-06 19:39:50 -0700 |
|---|---|---|
| committer | hamzeh <hamzeh@google.com> | 2019-05-10 16:04:37 -0700 |
| commit | a0026f45337273ba203017c815a9ea6afb506d46 (patch) | |
| tree | 1554958faa670eb796b31e1d896d203610d5b7bd | |
| parent | ae27f4385e45e453c87b9b2922d77d76c968cb25 (diff) | |
| download | platform_hardware_google_av-security-pi-release.tar.gz platform_hardware_google_av-security-pi-release.tar.bz2 platform_hardware_google_av-security-pi-release.zip | |
Zero hidl-generated structs (bufferpool)android-9.0.0_r60android-9.0.0_r59android-9.0.0_r58android-9.0.0_r57android-9.0.0_r56android-9.0.0_r55android-9.0.0_r54android-9.0.0_r53android-9.0.0_r52android-9.0.0_r51android-9.0.0_r50android-9.0.0_r49android-9.0.0_r48security-pi-releasepie-security-release
Bug: 131356202
Test: boot
Change-Id: I9fb6f42c7500d0629dbe7ab3d52a204fa2b9920a
Merged-In: Ie971e00e0bcc093bb49e8ab39d6ad15e22540855
(cherry picked from commit 2d47a48e620b53772a062bb3f966461440da597b)
| -rw-r--r-- | codec2/vndk/bufferpool/Connection.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/codec2/vndk/bufferpool/Connection.cpp b/codec2/vndk/bufferpool/Connection.cpp index a89b7b3..54f5c21 100644 --- a/codec2/vndk/bufferpool/Connection.cpp +++ b/codec2/vndk/bufferpool/Connection.cpp @@ -27,15 +27,27 @@ namespace implementation { Return<void> Connection::fetch(uint64_t transactionId, uint32_t bufferId, fetch_cb _hidl_cb) { ResultStatus status = ResultStatus::CRITICAL_ERROR; if (mInitialized && mAccessor) { - const native_handle_t *handle = NULL; - status = mAccessor->fetch( - mConnectionId, transactionId, bufferId, &handle); - if (status == ResultStatus::OK) { - _hidl_cb(status, Buffer{bufferId, handle}); - return Void(); + if (bufferId != SYNC_BUFFERID) { + const native_handle_t *handle = NULL; + status = mAccessor->fetch( + mConnectionId, transactionId, bufferId, &handle); + if (status == ResultStatus::OK) { + Buffer buffer = {}; + buffer.id = bufferId; + buffer.buffer = handle; + _hidl_cb(status, buffer); + return Void(); + } + } else { + mAccessor->cleanUp(false); } } - _hidl_cb(status, Buffer{0, nullptr}); + + Buffer buffer = {}; + buffer.id = 0; + buffer.buffer = nullptr; + + _hidl_cb(status, buffer); return Void(); } |
