From 1e743b4042f83e9166466c6730c253b5c6206227 Mon Sep 17 00:00:00 2001 From: Maufeat Date: Sun, 4 Jan 2026 05:50:45 +0100 Subject: [PATCH] try to correctly set parcel_out --- .../hle/service/nvnflinger/buffer_queue_producer.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) 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