aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2018-07-23Merge pull request #785 from lioncash/fsbunnei
partition_filesystem: Use std::move where applicable
2018-07-23VFS Regression and Accuracy Fixes (#776)Zach Hilman
* Regression and Mode Fixes * Review Fixes * string_view correction * Add operator& for FileSys::Mode * Return std::string from SanitizePath * Farming Simulator Fix * Use != With mode operator&
2018-07-23partition_filesystem: Use std::move where applicableLioncash
Avoids copying a std::string instance and avoids unnecessary atomic reference count incrementing and decrementing.
2018-07-23NRO Assets and NACP file formatZach Hilman
Cleanup Review fixes
2018-07-22vfs: Correct file_p variable usage within InterpretAsDirectory()Lioncash
ReplaceFileWithSubdirectory() takes a VirtualFile and a VirtualDir, but it was being passed a string as one of its arguments. The only reason this never caused issues is because this template isn't instantiated anywhere yet. This corrects an issue before it occurs.
2018-07-22file_util, vfs: Use std::string_view where applicableLioncash
Avoids unnecessary construction of std::string instances where applicable.
2018-07-21file_util: Use a u64 to represent number of entriesLioncash
This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away.
2018-07-21Merge pull request #754 from lioncash/partbunnei
partition_filesystem, vfs_real: Minor changes
2018-07-21Merge pull request #755 from lioncash/ctorbunnei
file_sys/errors: Remove redundant object constructor calls
2018-07-20file_sys/errors: Remove redundant object constructor callsLioncash
Given we're already constructing the error code, we don't need to call the constructor inside of it.
2018-07-20vfs_real: Remove redundant copying of std::vector instances in GetFiles() ↵Lioncash
and GetSubdirectories() We already return by value, so we don't explicitly need to make the copy.
2018-07-20partition_filesystem, vfs_real: Add missing standard includesLioncash
2018-07-20partition_filesystem, vfs_real: Use std::move in ↵Lioncash
ReplaceFileWithSubdirectory() where applicable Avoids unnecessary atomic increment and decrement operations.
2018-07-20partition_filesystem, vfs_real: Use std::distance() instead of subtractionLioncash
This is a little bit more self-documenting on what is being done here.
2018-07-20vfs_offset: Simplify TrimToFit()Lioncash
We can simply use std::clamp() here, instead of using an equivalent with std::max() and std::min().
2018-07-20vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by ↵Lioncash
const reference Given the data is intended to be directly written, there's no need to take the std::vector by value and copy the data.
2018-07-20vfs: Use variable template variants of std::is_trivially_copyableLioncash
Provides the same behavior, but with less writing
2018-07-20vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member ↵Lioncash
functions to be const qualified These functions don't modify the data being pointed to, so these can be pointers to const data
2018-07-20Merge pull request #737 from lioncash/movebunnei
filesys/loader: std::move VirtualFile instances in constructors where applicable
2018-07-20vfs_offset: std::move file and name parameters of OffsetVfsFileLioncash
Avoids potentially unnecessary atomic reference count incrementing and decrementing, as well as string copying.
2018-07-19partition_filesystem: Return pfs_dirs member variable within GetSubdirectories()Lioncash
This should be returned here, otherwise pfs_dirs is effectively only ever added to, but never read.
2018-07-19Merge pull request #703 from lioncash/constbunnei
savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
2018-07-19Merge pull request #702 from lioncash/initializebunnei
partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
2018-07-19Merge pull request #701 from lioncash/movingbunnei
content_archive: Minor changes
2018-07-18savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const ↵Lioncash
member function This function doesn't alter class state.
2018-07-18partition_filesystem: Ensure all class members of PartitionFilesystem are ↵Lioncash
initialized Previously is_hfs and pfs_header members wouldn't be initialized in the constructor, as they were stored in locals instead. This would result in things like GetName() and PrintDebugInfo() behaving incorrectly. While we're at it, initialize the members to deterministic values as well, in case loading ever fails.
2018-07-18content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const referenceLioncash
There's no need to take this by value when it's possible to avoid unnecessary copies entirely like this.
2018-07-18content_archive: Add missing standard includesLioncash
2018-07-18content_archive: std::move VirtualFile in NCA's constructorLioncash
Gets rid of unnecessary atomic reference count incrementing and decrementing.
2018-07-18vfs: Deduplicate accumulation code in VfsDirectory's GetSize()Lioncash
We can just use a generic lambda to avoid writing the same thing twice.
2018-07-18Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
2018-07-17General Filesystem and Save Data Fixes (#670)Zach Hilman
2018-07-14FileSys: Append the requested path to the filesystem base path in DeleteFile.Subv
We were trying to delete things in the current directory instead of the actual filesystem directory. This may fix some savedata issues in some games.
2018-07-11Merge pull request #559 from Subv/mount_savedatabunnei
Services/FS: Return the correct error code when trying to mount a nonexistent savedata.
2018-07-08savedata_factory: Always create a save directory for games.bunnei
2018-07-07Revert "Virtual Filesystem (#597)"bunnei
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
2018-07-06Virtual Filesystem (#597)Zach Hilman
* Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename
2018-07-02Update clang formatJames Rowe
2018-07-02Rename logging macro back to LOG_*James Rowe
2018-06-21Add support for decrypted NCA files (#567)Zach Hilman
* Start to add NCA support in loader * More nca stuff * More changes to nca.cpp * Now identifies decrypted NCA cont. * Game list fixes and more structs and stuff * More updates to Nca class * Now reads ExeFs (i think) * ACTUALLY LOADS EXEFS! * RomFS loads and games execute * Cleanup and Finalize * plumbing, cleanup and testing * fix some things that i didnt think of before * Preliminary Review Changes * Review changes for bunnei and subv
2018-06-20Build: Fixed some MSVC warnings in various parts of the code.Subv
2018-06-18Services/FS: Return the correct error code when trying to mount a ↵Subv
nonexistent savedata.
2018-05-02general: Make formatting of logged hex values more straightforwardLioncash
This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
2018-04-25file-sys: convert a StringFromFormat call into fmt::format in GetFullPath()Lioncash
Lessens the amount to read and gets rid of the PRIX64 macro, allowing us to use a single string for the whole path, making it easier to read.
2018-04-25file-sys: Move logging macros over to the new fmt-capable onesLioncash
2018-04-24Service/FS: implement IFileSystem::RenameFilemailwl
2018-04-19disk_filesystem: Remove unused total_entries_in_directory member from ↵Lioncash
Disk_Directory
2018-04-19disk_filesystem: Remove redundant initializer in Disk_Directory's constructorLioncash
2018-04-19disk_filesystem: Make constructors explicit where applicableLioncash
2018-04-17file_sys: Use NGLOGshinyquagsire23