Browse Source
Merge pull request #1830 from Subv/vi_ub
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
2 additions and
0 deletions
-
src/core/hle/service/vi/vi.cpp
|
|
@ -542,6 +542,8 @@ private: |
|
|
// Repeat TransactParcel DequeueBuffer when a buffer is available
|
|
|
// Repeat TransactParcel DequeueBuffer when a buffer is available
|
|
|
auto buffer_queue = nv_flinger->GetBufferQueue(id); |
|
|
auto buffer_queue = nv_flinger->GetBufferQueue(id); |
|
|
std::optional<u32> slot = buffer_queue->DequeueBuffer(width, height); |
|
|
std::optional<u32> slot = buffer_queue->DequeueBuffer(width, height); |
|
|
|
|
|
ASSERT_MSG(slot != std::nullopt, "Could not dequeue buffer."); |
|
|
|
|
|
|
|
|
IGBPDequeueBufferResponseParcel response{*slot}; |
|
|
IGBPDequeueBufferResponseParcel response{*slot}; |
|
|
ctx.WriteBuffer(response.Serialize()); |
|
|
ctx.WriteBuffer(response.Serialize()); |
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
|