mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	file_sys: std::move the vector in NCCHFile's constructor
Avoids making unnecessary copies of the source vector's data.
This commit is contained in:
		
							parent
							
								
									370d77f13a
								
							
						
					
					
						commit
						11705857cd
					
				
					 2 changed files with 5 additions and 2 deletions
				
			
		|  | @ -5,6 +5,7 @@ | |||
| #include <algorithm> | ||||
| #include <cinttypes> | ||||
| #include <memory> | ||||
| #include <utility> | ||||
| #include <vector> | ||||
| #include "common/common_types.h" | ||||
| #include "common/file_util.h" | ||||
|  | @ -83,7 +84,7 @@ ResultVal<std::unique_ptr<FileBackend>> NCCHArchive::OpenFile(const Path& path, | |||
| 
 | ||||
|         // Load NCCH .code or icon/banner/logo
 | ||||
|         result = ncch_container.LoadSectionExeFS(openfile_path.exefs_filepath.data(), buffer); | ||||
|         file = std::make_unique<NCCHFile>(buffer); | ||||
|         file = std::make_unique<NCCHFile>(std::move(buffer)); | ||||
|     } else { | ||||
|         LOG_ERROR(Service_FS, "Unknown NCCH archive type %u!", openfile_path.filepath_type); | ||||
|         result = Loader::ResultStatus::Error; | ||||
|  | @ -193,6 +194,8 @@ u64 NCCHArchive::GetFreeBytes() const { | |||
| 
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| NCCHFile::NCCHFile(std::vector<u8> buffer) : file_buffer(std::move(buffer)) {} | ||||
| 
 | ||||
| ResultVal<size_t> NCCHFile::Read(const u64 offset, const size_t length, u8* buffer) const { | ||||
|     LOG_TRACE(Service_FS, "called offset=%" PRIu64 ", length=%zu", offset, length); | ||||
|     size_t length_left = static_cast<size_t>(data_size - offset); | ||||
|  |  | |||
|  | @ -51,7 +51,7 @@ protected: | |||
| // File backend for NCCH files
 | ||||
| class NCCHFile : public FileBackend { | ||||
| public: | ||||
|     NCCHFile(std::vector<u8> buffer) : file_buffer(buffer) {} | ||||
|     explicit NCCHFile(std::vector<u8> buffer); | ||||
| 
 | ||||
|     ResultVal<size_t> Read(u64 offset, size_t length, u8* buffer) const override; | ||||
|     ResultVal<size_t> Write(u64 offset, size_t length, bool flush, const u8* buffer) override; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue