mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #1225 from lioncash/clean
csnd_snd: Get rid of type punning
This commit is contained in:
		
						commit
						e906165229
					
				
					 1 changed files with 13 additions and 12 deletions
				
			
		|  | @ -2,6 +2,7 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include <cstring> | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/kernel/mutex.h" | #include "core/hle/kernel/mutex.h" | ||||||
| #include "core/hle/kernel/shared_memory.h" | #include "core/hle/kernel/shared_memory.h" | ||||||
|  | @ -52,19 +53,19 @@ void Initialize(Service::Interface* self) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ExecuteType0Commands(Service::Interface* self) { | void ExecuteType0Commands(Service::Interface* self) { | ||||||
|     u32* cmd_buff = Kernel::GetCommandBuffer(); |     u32* const cmd_buff = Kernel::GetCommandBuffer(); | ||||||
|  |     u8*  const ptr = shared_memory->GetPointer(cmd_buff[1]); | ||||||
|  | 
 | ||||||
|  |     if (shared_memory != nullptr && ptr != nullptr) { | ||||||
|  |         Type0Command command; | ||||||
|  |         std::memcpy(&command, ptr, sizeof(Type0Command)); | ||||||
| 
 | 
 | ||||||
|     if (shared_memory != nullptr) { |  | ||||||
|         struct Type0Command* command = reinterpret_cast<struct Type0Command*>( |  | ||||||
|                 shared_memory->GetPointer(cmd_buff[1])); |  | ||||||
|         if (command == nullptr) { |  | ||||||
|             cmd_buff[1] = 1; |  | ||||||
|         }else{ |  | ||||||
|         LOG_WARNING(Service, "(STUBBED) CSND_SND::ExecuteType0Commands"); |         LOG_WARNING(Service, "(STUBBED) CSND_SND::ExecuteType0Commands"); | ||||||
|             command->finished |= 1; |         command.finished |= 1; | ||||||
|         cmd_buff[1] = 0; |         cmd_buff[1] = 0; | ||||||
|         } | 
 | ||||||
|     }else{ |         std::memcpy(ptr, &command, sizeof(Type0Command)); | ||||||
|  |     } else { | ||||||
|         cmd_buff[1] = 1; |         cmd_buff[1] = 1; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue