diff options
| author | 2017-07-21 13:03:28 -0500 | |
|---|---|---|
| committer | 2017-07-21 14:59:22 -0500 | |
| commit | e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34 (patch) | |
| tree | 8bdb1aaa9c97cec83c896ce4fb8ebd3ea50c9202 /src | |
| parent | Services/APT: Use the right error codes in ReceiveParameter and GlanceParamet... (diff) | |
| download | yuzu-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.cpp | 10 |
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 | ||
| 263 | void GlanceParameter(Service::Interface* self) { | 265 | void 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 | ||
| 308 | void CancelParameter(Service::Interface* self) { | 314 | void CancelParameter(Service::Interface* self) { |