diff options
author | Hirokazu Honda <hiroh@chromium.org> | 2021-04-03 22:57:34 +0900 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-04-20 05:59:08 +0300 |
commit | d40430116b1b65d8deeeeea106368e20d8534a03 (patch) | |
tree | 02e20a38f4307f7f701b7d6ead58fa168f238937 /src/android/camera_worker.cpp | |
parent | 0b661d70ec62d69ffd4ea7bb0aeb92d7ad12b8d3 (diff) |
android: CameraDevice: Fix Camera3RequestDescriptor leakage
CameraDevice creates Camera3RequestDescriptor in
processCaptureRequest() and disallocates in requestComplete().
Camera3RequestDescriptor can never be destroyed if
requestComplete() is never called. This avoid the memory
leakage by storing them in map CameraRequestDescriptor.
Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/android/camera_worker.cpp')
-rw-r--r-- | src/android/camera_worker.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/android/camera_worker.cpp b/src/android/camera_worker.cpp index df436460..300ddde0 100644 --- a/src/android/camera_worker.cpp +++ b/src/android/camera_worker.cpp @@ -26,10 +26,10 @@ LOG_DECLARE_CATEGORY(HAL) * by the CameraWorker which queues it to the libcamera::Camera after handling * fences. */ -CaptureRequest::CaptureRequest(libcamera::Camera *camera, uint64_t cookie) +CaptureRequest::CaptureRequest(libcamera::Camera *camera) : camera_(camera) { - request_ = camera_->createRequest(cookie); + request_ = camera_->createRequest(reinterpret_cast<uint64_t>(this)); } void CaptureRequest::addBuffer(Stream *stream, FrameBuffer *buffer, int fence) |