mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Reorder error handling in extdata FS::CreateFile (#7346)
* Reorder error handling in extdata CreateFile * Apply suggestions
This commit is contained in:
		
							parent
							
								
									30c53c9509
								
							
						
					
					
						commit
						72c1075402
					
				
					 3 changed files with 12 additions and 12 deletions
				
			
		|  | @ -92,7 +92,7 @@ class ExtSaveDataArchive : public SaveDataArchive { | |||
| public: | ||||
|     explicit ExtSaveDataArchive(const std::string& mount_point, | ||||
|                                 std::unique_ptr<DelayGenerator> delay_generator_) | ||||
|         : SaveDataArchive(mount_point) { | ||||
|         : SaveDataArchive(mount_point, false) { | ||||
|         delay_generator = std::move(delay_generator_); | ||||
|     } | ||||
| 
 | ||||
|  | @ -155,14 +155,6 @@ public: | |||
|                                                  std::move(delay_generator)); | ||||
|     } | ||||
| 
 | ||||
|     Result CreateFile(const Path& path, u64 size) const override { | ||||
|         if (size == 0) { | ||||
|             LOG_ERROR(Service_FS, "Zero-size file is not supported"); | ||||
|             return ResultUnsupportedOpenFlags; | ||||
|         } | ||||
|         return SaveDataArchive::CreateFile(path, size); | ||||
|     } | ||||
| 
 | ||||
| private: | ||||
|     ExtSaveDataArchive() = default; | ||||
|     template <class Archive> | ||||
|  |  | |||
|  | @ -232,8 +232,13 @@ Result SaveDataArchive::CreateFile(const FileSys::Path& path, u64 size) const { | |||
|     } | ||||
| 
 | ||||
|     if (size == 0) { | ||||
|         FileUtil::CreateEmptyFile(full_path); | ||||
|         return ResultSuccess; | ||||
|         if (allow_zero_size_create) { | ||||
|             FileUtil::CreateEmptyFile(full_path); | ||||
|             return ResultSuccess; | ||||
|         } else { | ||||
|             LOG_DEBUG(Service_FS, "Zero-size file is not supported"); | ||||
|             return ResultUnsupportedOpenFlags; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     FileUtil::IOFile file(full_path, "wb"); | ||||
|  |  | |||
|  | @ -15,7 +15,8 @@ namespace FileSys { | |||
| /// Archive backend for general save data archive type (SaveData and SystemSaveData)
 | ||||
| class SaveDataArchive : public ArchiveBackend { | ||||
| public: | ||||
|     explicit SaveDataArchive(const std::string& mount_point_) : mount_point(mount_point_) {} | ||||
|     explicit SaveDataArchive(const std::string& mount_point_, bool allow_zero_size_create_ = true) | ||||
|         : mount_point(mount_point_), allow_zero_size_create(allow_zero_size_create_) {} | ||||
| 
 | ||||
|     std::string GetName() const override { | ||||
|         return "SaveDataArchive: " + mount_point; | ||||
|  | @ -35,6 +36,7 @@ public: | |||
| 
 | ||||
| protected: | ||||
|     std::string mount_point; | ||||
|     bool allow_zero_size_create; | ||||
|     SaveDataArchive() = default; | ||||
| 
 | ||||
| private: | ||||
|  | @ -42,6 +44,7 @@ private: | |||
|     void serialize(Archive& ar, const unsigned int) { | ||||
|         ar& boost::serialization::base_object<ArchiveBackend>(*this); | ||||
|         ar& mount_point; | ||||
|         ar& allow_zero_size_create; | ||||
|     } | ||||
|     friend class boost::serialization::access; | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue