Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.

Assert that it is not empty before using it in the DequeueBuffer wait callback.
pull/8/head
Subv 6 years ago
parent 4b950728fd
commit 583bd20f02

@ -542,6 +542,8 @@ private:
// Repeat TransactParcel DequeueBuffer when a buffer is available
auto buffer_queue = nv_flinger->GetBufferQueue(id);
std::optional<u32> slot = buffer_queue->DequeueBuffer(width, height);
ASSERT_MSG(slot != std::nullopt, "Could not dequeue buffer.");
IGBPDequeueBufferResponseParcel response{*slot};
ctx.WriteBuffer(response.Serialize());
IPC::ResponseBuilder rb{ctx, 2};

Loading…
Cancel
Save