summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2019-05-06 19:39:50 -0700
committerhamzeh <hamzeh@google.com>2019-05-10 16:04:37 -0700
commita0026f45337273ba203017c815a9ea6afb506d46 (patch)
tree1554958faa670eb796b31e1d896d203610d5b7bd
parentae27f4385e45e453c87b9b2922d77d76c968cb25 (diff)
downloadplatform_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
Bug: 131356202 Test: boot Change-Id: I9fb6f42c7500d0629dbe7ab3d52a204fa2b9920a Merged-In: Ie971e00e0bcc093bb49e8ab39d6ad15e22540855 (cherry picked from commit 2d47a48e620b53772a062bb3f966461440da597b)
-rw-r--r--codec2/vndk/bufferpool/Connection.cpp26
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();
}