aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2018-08-08Merge pull request #850 from DarkLordZach/icon-metabunnei
Add Icons and Metadata Support
2018-08-06loader: Add icon and title support to XCIZach Hilman
2018-08-06Use const where applicableZach Hilman
2018-08-06Avoid parsing RomFS to directory in NCAZach Hilman
2018-08-04content_archive: Add support for titlekey cryptographyZach Hilman
2018-08-04Merge pull request #849 from DarkLordZach/xcibunnei
XCI and Encrypted NCA Support
2018-08-02vfs_vector: Remove unused variable in FindAndRemoveVectorElement()Lioncash
This wasn't being used for anything, so it can be removed.
2018-08-02vfs_vector: Avoid unnecessary copies where applicableLioncash
The lambda elements should be taken by const reference here, and we can move the virtual directory passed to ReplaceFileWithSubdirectory()
2018-08-01Add missing parameter to files.push_back()Zach Hilman
2018-08-01Use more descriptive error codes and messagesZach Hilman
2018-08-01Use ErrorEncrypted where applicable and fix no keys crashZach Hilman
2018-08-01Add missing includes and use const where applicableZach Hilman
2018-08-01Make XCI comply to review and style guidelinesZach Hilman
2018-08-01Extract mbedtls to cpp fileZach Hilman
2018-08-01Remove files that are not usedZach Hilman
2018-07-29partition_filesystem: Remove dynamic_cast in PrintDebugInfo()Lioncash
We shouldn't be upcasting our file instances. Given a PartitionFilesystem is currently designed to accept any arbitrary VfsFile instances, casting to a more specific type than that is just bad design, and shows an interface design issue.
2018-07-27RomFS ExtractionZach Hilman
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.