libcamera: camera: Don't move buffers away from request at completion

For a historical reason that isn't fully understood, the request
completion handler in the Camera class moves all buffers away from the
request's buffer map to a local variable before emitting the request
completion signal. There's no reason to do so, and it makes it
impossible for requests to access buffers in their destructor. Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart
2019-07-09 22:03:54 +03:00
parent c4b9ccb45a
commit e8e80bfa8d

View File

@@ -894,8 +894,7 @@ int Camera::stop()
*/
void Camera::requestComplete(Request *request)
{
std::map<Stream *, Buffer *> buffers(std::move(request->bufferMap_));
requestCompleted.emit(request, buffers);
requestCompleted.emit(request, request->bufferMap_);
delete request;
}