mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	code: Use std::span where appropriate (#6658)
* code: Use std::span when possible * code: Prefix memcpy and memcmp with std::
This commit is contained in:
		
							parent
							
								
									4ccd9f24fb
								
							
						
					
					
						commit
						cf9bb90ae3
					
				
					 106 changed files with 362 additions and 329 deletions
				
			
		| 
						 | 
				
			
			@ -285,8 +285,8 @@ void Module::Interface::GenHashConsoleUnique(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        std::array<u8, CryptoPP::SHA256::DIGESTSIZE> hash;
 | 
			
		||||
        CryptoPP::SHA256().CalculateDigest(hash.data(), buffer.data(), sizeof(buffer));
 | 
			
		||||
        u32 low, high;
 | 
			
		||||
        memcpy(&low, &hash[hash.size() - 8], sizeof(u32));
 | 
			
		||||
        memcpy(&high, &hash[hash.size() - 4], sizeof(u32));
 | 
			
		||||
        std::memcpy(&low, &hash[hash.size() - 8], sizeof(u32));
 | 
			
		||||
        std::memcpy(&high, &hash[hash.size() - 4], sizeof(u32));
 | 
			
		||||
        rb.Push(low);
 | 
			
		||||
        rb.Push(high);
 | 
			
		||||
    } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -439,7 +439,7 @@ ResultVal<void*> Module::GetConfigInfoBlockPointer(u32 block_id, u32 size, u32 f
 | 
			
		|||
ResultCode Module::GetConfigInfoBlock(u32 block_id, u32 size, u32 flag, void* output) {
 | 
			
		||||
    void* pointer = nullptr;
 | 
			
		||||
    CASCADE_RESULT(pointer, GetConfigInfoBlockPointer(block_id, size, flag));
 | 
			
		||||
    memcpy(output, pointer, size);
 | 
			
		||||
    std::memcpy(output, pointer, size);
 | 
			
		||||
 | 
			
		||||
    return RESULT_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -447,7 +447,7 @@ ResultCode Module::GetConfigInfoBlock(u32 block_id, u32 size, u32 flag, void* ou
 | 
			
		|||
ResultCode Module::SetConfigInfoBlock(u32 block_id, u32 size, u32 flag, const void* input) {
 | 
			
		||||
    void* pointer = nullptr;
 | 
			
		||||
    CASCADE_RESULT(pointer, GetConfigInfoBlockPointer(block_id, size, flag));
 | 
			
		||||
    memcpy(pointer, input, size);
 | 
			
		||||
    std::memcpy(pointer, input, size);
 | 
			
		||||
    return RESULT_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -473,10 +473,10 @@ ResultCode Module::CreateConfigInfoBlk(u32 block_id, u16 size, u16 flags, const
 | 
			
		|||
        config->block_entries[config->total_entries].offset_or_data = offset;
 | 
			
		||||
 | 
			
		||||
        // Write the data at the new offset
 | 
			
		||||
        memcpy(&cfg_config_file_buffer[offset], data, size);
 | 
			
		||||
        std::memcpy(&cfg_config_file_buffer[offset], data, size);
 | 
			
		||||
    } else {
 | 
			
		||||
        // The offset_or_data field in the header contains the data itself if it's 4 bytes or less
 | 
			
		||||
        memcpy(&config->block_entries[config->total_entries].offset_or_data, data, size);
 | 
			
		||||
        std::memcpy(&config->block_entries[config->total_entries].offset_or_data, data, size);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ++config->total_entries;
 | 
			
		||||
| 
						 | 
				
			
			@ -721,7 +721,7 @@ Module::~Module() = default;
 | 
			
		|||
 | 
			
		||||
/// Checks if the language is available in the chosen region, and returns a proper one
 | 
			
		||||
static std::tuple<u32 /*region*/, SystemLanguage> AdjustLanguageInfoBlock(
 | 
			
		||||
    const std::vector<u32>& region_code, SystemLanguage language) {
 | 
			
		||||
    std::span<const u32> region_code, SystemLanguage language) {
 | 
			
		||||
    static const std::array<std::vector<SystemLanguage>, 7> region_languages{{
 | 
			
		||||
        // JPN
 | 
			
		||||
        {LANGUAGE_JP},
 | 
			
		||||
| 
						 | 
				
			
			@ -750,13 +750,14 @@ static std::tuple<u32 /*region*/, SystemLanguage> AdjustLanguageInfoBlock(
 | 
			
		|||
    }
 | 
			
		||||
    // The language is not available in any available region, so default to the first region and
 | 
			
		||||
    // language
 | 
			
		||||
    u32 default_region = region_code[0];
 | 
			
		||||
    const u32 default_region = region_code[0];
 | 
			
		||||
    return {default_region, region_languages[default_region][0]};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Module::SetPreferredRegionCodes(const std::vector<u32>& region_codes) {
 | 
			
		||||
void Module::SetPreferredRegionCodes(std::span<const u32> region_codes) {
 | 
			
		||||
    const SystemLanguage current_language = GetSystemLanguage();
 | 
			
		||||
    auto [region, adjusted_language] = AdjustLanguageInfoBlock(region_codes, current_language);
 | 
			
		||||
    const auto [region, adjusted_language] =
 | 
			
		||||
        AdjustLanguageInfoBlock(region_codes, current_language);
 | 
			
		||||
 | 
			
		||||
    preferred_region_code = region;
 | 
			
		||||
    LOG_INFO(Service_CFG, "Preferred region code set to {}", preferred_region_code);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,9 +6,9 @@
 | 
			
		|||
 | 
			
		||||
#include <array>
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <span>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <utility>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -345,7 +345,7 @@ public:
 | 
			
		|||
     * setting is auto.
 | 
			
		||||
     * @param region_codes the preferred region codes to set
 | 
			
		||||
     */
 | 
			
		||||
    void SetPreferredRegionCodes(const std::vector<u32>& region_codes);
 | 
			
		||||
    void SetPreferredRegionCodes(std::span<const u32> region_codes);
 | 
			
		||||
 | 
			
		||||
    // Utilities for frontend to set config data.
 | 
			
		||||
    // Note: UpdateConfigNANDSavegame should be called after making changes to config data.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue