diff --git a/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp b/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp index 2f8745671b..b6d42d7c58 100644 --- a/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp +++ b/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp @@ -950,8 +950,8 @@ void BufferQueueProducer::Transact(u32 code, std::span parcel_data, const s32 request = parcel_in.Read(); if (request <= 0) { - parcel_out.Write(Status::BadValue); - parcel_out.Write(0); + status = Status::BadValue; + parcel_out.Write(0); break; } @@ -971,6 +971,8 @@ void BufferQueueProducer::Transact(u32 code, std::span parcel_data, // Here we use the frame number as a terminator. // Because a buffer without frame_number is not considered complete if (current_history_buffer.frame_number == 0) { + status = Status::BadValue; + parcel_out.Write(0); break; } @@ -980,7 +982,7 @@ void BufferQueueProducer::Transact(u32 code, std::span parcel_data, } const s32 limit = std::min(request, valid_index); - parcel_out.Write(Status::NoError); + status = Status::NoError; parcel_out.Write(limit); for (s32 i = 0; i < limit; ++i) { parcel_out.Write(buffer_history_snapshot[i]); @@ -1000,8 +1002,4 @@ void BufferQueueProducer::Transact(u32 code, std::span parcel_data, (std::min)(parcel_reply.size(), serialized.size())); } -Kernel::KReadableEvent* BufferQueueProducer::GetNativeHandle(u32 type_id) { - return &buffer_wait_event->GetReadableEvent(); -} - } // namespace Service::android