summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilian Peev <epeev@google.com>2020-02-26 16:31:47 -0800
committerEmilian Peev <epeev@google.com>2020-02-26 16:41:57 -0800
commit36aa827f70fa4634740e67b40ea58abd27c29441 (patch)
treef3482e7c78099b114bbdd86e72570de3b25d9dde
parent3e9669ff699ee0a0d8a6964e9e4ea9289a03f777 (diff)
Camera: Avoid adding uninitialized hal requests
The offline requests deque is constructed with specific amount of entries. Initialize the the already allocated entries before pushing new ones. Bug: 149346795 Test: Camera CTS Change-Id: I6db8d48949caf753429702b60c48698c95ecf4ad
-rw-r--r--camera/device/3.6/default/ExternalCameraDeviceSession.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/camera/device/3.6/default/ExternalCameraDeviceSession.cpp b/camera/device/3.6/default/ExternalCameraDeviceSession.cpp
index 60a1a1019c..8fd8e5897b 100644
--- a/camera/device/3.6/default/ExternalCameraDeviceSession.cpp
+++ b/camera/device/3.6/default/ExternalCameraDeviceSession.cpp
@@ -272,16 +272,17 @@ Status ExternalCameraDeviceSession::switchToOffline(const hidl_vec<int32_t>& off
// convert hal requests to offline request
std::deque<std::shared_ptr<HalRequest>> offlineReqs(halReqs.size());
+ size_t i = 0;
for (auto& v4lReq : halReqs) {
- std::shared_ptr<HalRequest> halReq = std::make_shared<HalRequest>();
- halReq->frameNumber = v4lReq->frameNumber;
- halReq->setting = v4lReq->setting;
- halReq->shutterTs = v4lReq->shutterTs;
- halReq->buffers = v4lReq->buffers;
+ offlineReqs[i] = std::make_shared<HalRequest>();
+ offlineReqs[i]->frameNumber = v4lReq->frameNumber;
+ offlineReqs[i]->setting = v4lReq->setting;
+ offlineReqs[i]->shutterTs = v4lReq->shutterTs;
+ offlineReqs[i]->buffers = v4lReq->buffers;
sp<V3_4::implementation::V4L2Frame> v4l2Frame =
static_cast<V3_4::implementation::V4L2Frame*>(v4lReq->frameIn.get());
- halReq->frameIn = new AllocatedV4L2Frame(v4l2Frame);
- offlineReqs.push_back(halReq);
+ offlineReqs[i]->frameIn = new AllocatedV4L2Frame(v4l2Frame);
+ i++;
// enqueue V4L2 frame
enqueueV4l2Frame(v4l2Frame);
}