summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Subv2017-07-21 13:03:28 -0500
committerGravatar Subv2017-07-21 14:59:22 -0500
commite403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34 (patch)
tree8bdb1aaa9c97cec83c896ce4fb8ebd3ea50c9202 /src
parentServices/APT: Use the right error codes in ReceiveParameter and GlanceParamet... (diff)
downloadyuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.gz
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.xz
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.zip
Services/APT: Properly clear the apt parameter after a successful ReceiveParameter call.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/apt/apt.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index b5748693f..b6c013d43 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/src/core/hle/service/apt/apt.cpp
@@ -257,7 +257,9 @@ void ReceiveParameter(Service::Interface* self) {
257 257
258 Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size()); 258 Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
259 259
260 LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); 260 // Clear the parameter
261 next_parameter = boost::none;
262 LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
261} 263}
262 264
263void GlanceParameter(Service::Interface* self) { 265void GlanceParameter(Service::Interface* self) {
@@ -302,7 +304,11 @@ void GlanceParameter(Service::Interface* self) {
302 304
303 Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size()); 305 Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
304 306
305 LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); 307 // Note: The NS module always clears the DSPSleep and DSPWakeup signals even in GlanceParameter.
308 if (next_parameter->signal == static_cast<u32>(SignalType::DspSleep) ||
309 next_parameter->signal == static_cast<u32>(SignalType::DspWakeup))
310 next_parameter = boost::none;
311 LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
306} 312}
307 313
308void CancelParameter(Service::Interface* self) { 314void CancelParameter(Service::Interface* self) {