Zach Hilman
050547b801
romfs: Implement CreateRomFS
2018-09-21 19:53:33 -04:00
Zach Hilman
6eada3c57d
file_sys: Port Atmosphere-NX fs_mitm implementation
2018-09-21 19:53:33 -04:00
Zach Hilman
50a470eab8
bis_factory: Add mod directory VFS getter
2018-09-21 19:53:33 -04:00
Zach Hilman
16188acb50
patch_manager: Add LayeredFS mods support
2018-09-21 19:53:33 -04:00
Zach Hilman
44fdac334c
vfs_concat: Rewrite and fix ConcatenatedVfsFile
2018-09-21 19:53:33 -04:00
Zach Hilman
3e5c3d0f16
vfs_layered: Add LayeredVfsDirectory
...
Reads multiple dirs through as if a waterfall.
2018-09-21 19:53:05 -04:00
Zach Hilman
b52343a428
vfs_vector: Add VectorVfsFile
...
Maps a vector into the VFS interface.
2018-09-21 19:53:05 -04:00
Zach Hilman
c65d4d119f
vfs_static: Add StaticVfsFile
...
Always returns the template argument byte for all reads. Doesn't support writes.
2018-09-21 19:53:05 -04:00
Zach Hilman
f68e324672
vfs: Add and rewite VfsRawCopy functions
2018-09-21 19:53:05 -04:00
Zach Hilman
d6cbb3a3e0
vfs: Add GetEntries method
...
Maps name string to directory or file.
2018-09-21 19:53:05 -04:00
bunnei
c1c59617ad
Merge pull request #1364 from lioncash/content
...
file-sys: Default heavy-weight class destructors in the cpp file
2018-09-20 23:31:31 -04:00
bunnei
8fe9572271
Merge pull request #1358 from DarkLordZach/temp-storage
...
savedata_factory: Add TemporaryStorage SaveDataType
2018-09-20 10:13:38 -04:00
bunnei
0931a711de
Merge pull request #1363 from lioncash/control
...
control_metadata: Move language name array definition to the cpp file
2018-09-20 10:13:23 -04:00
Lioncash
05ef9dfc10
file-sys: Default heavy-weight class destructors in the cpp file
...
Several classes have a lot of non-trivial members within them, or don't
but likely should have the destructor defaulted in the cpp file for
future-proofing/being more friendly to forward declarations.
Leaving the destructor unspecified allows the compiler to inline the
destruction code all over the place, which is generally undesirable from
a code bloat perspective.
2018-09-19 19:34:08 -04:00
Lioncash
3146502a12
control_metadata: Remove unnecessary else within GetLanguageEntry()
...
There's no need to indent the code here, given the if case contains a
return statement at the end of it.
2018-09-19 19:02:06 -04:00
Lioncash
05d49962b6
control_metadata: Move language name array definition to the cpp file
...
This was used in two different translation units
(deconstructed_rom_directory and patch_manager). This means we'd be
pointlessly duplicating the whole array twice due to it being defined
within the header.
2018-09-19 18:57:26 -04:00
Lioncash
2e5f0e5024
xts_archive: Remove unused variables from CalculateHMAC256()
...
These variables aren't used, which still has an impact, as std::vector
cannot be optimized away by the compiler (it's constructor and
destructor are both non-trivial), so this was just wasting memory.
2018-09-19 14:23:13 -04:00
Lioncash
2752183883
xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptr
...
std::shared_ptr isn't strictly necessary here and is only ever used in
contexts where the object doesn't depend on being shared. This also
makes the interface more flexible, as it's possible to create a
std::shared_ptr from a std::unique_ptr (std::shared_ptr has a
constructor that accepts a std::unique_ptr), but not the other way
around.
2018-09-19 14:22:37 -04:00
Lioncash
f272261c21
xts_archive: Ensure NAX's type member is always initialized
...
Ensures that the member always has a deterministic value.
2018-09-19 14:22:37 -04:00
Lioncash
92a98a8b19
xts_archive: Amend initializer order of NAX's constructor
...
Orders the initializer list in the same order the members would be
initialized. Avoids compiler warnings.
2018-09-19 14:22:30 -04:00
Zach Hilman
dfaea55be5
savedata_factory: Add TemporaryStorage SaveDataType
...
Seems to be used by NSO NES Emulator
2018-09-19 09:06:22 -04:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
Lioncash
54724fe918
file_sys/nca_patch: Amend constructor initializer list order
...
Orders the elements in the initializer list in the order they're
specified in the class. This prevents compiler warnings about
initialization order.
2018-09-06 14:00:11 -04:00
Lioncash
b155b3ef81
file_sys/nca_patch: Remove unnecessary includes
...
romfs.h doesn't need to be included in the header, the only real
dependency here is common's swap.h that needs to be included.
2018-09-06 13:58:53 -04:00
Lioncash
a859a35ec8
file_sys/patch_manager: Add missing includes
...
These includes were previously being satisfied indirectly.
2018-09-06 13:53:23 -04:00
bunnei
94f193af65
Merge pull request #1242 from lioncash/file-sys
...
file_sys/submission_package: Replace includes with forward declarations where applicable
2018-09-05 18:53:32 -04:00
Lioncash
6bd6beee20
file_sys/submission_package: Correct constructor initialization list order
...
Orders the elements in the sequence to match the order in which they'll
actually be initialized in.
2018-09-05 13:44:42 -04:00
Lioncash
c0b7ed8b58
file_sys/submission_package: Replace includes with forward declarations where applicable
2018-09-05 12:08:04 -04:00
Zach Hilman
c913136eb2
bktr: Fix bucket overlap error
2018-09-04 17:01:54 -04:00
Zach Hilman
23a16c1720
patch_manager: Centralize Control-type NCA parsing
2018-09-04 16:25:10 -04:00
Zach Hilman
92e26df00f
nsp: Fix error masking issue with XCI files
...
Now display correct error instead of catch-all MissingProgramNCA
2018-09-04 16:24:24 -04:00
Zach Hilman
c91b60a421
game_list: Fix version display on non-NAND titles
2018-09-04 16:24:02 -04:00
Zach Hilman
cbd517d8cc
bktr: Add logging on successful patch
2018-09-04 16:24:02 -04:00
Zach Hilman
a6e75cd45b
bktr: Implement IVFC offset shifting
...
Fixes base game read errors
2018-09-04 16:24:02 -04:00
Zach Hilman
9664ce255d
bktr: Fix missing includes and optimize style
2018-09-04 16:24:02 -04:00
Zach Hilman
97bf83bc56
patch_manager: Add usages of patches to ExeFS
2018-09-04 16:23:15 -04:00
Zach Hilman
8e900a301a
file_sys: Add class to manage game patches
...
Right now only includes Updates, but should eventually contain all of the other patches we need.
2018-09-04 16:22:25 -04:00
Zach Hilman
54e7ddb93a
file_sys: Add BKTR patching mechanism
2018-09-04 16:22:25 -04:00
Zach Hilman
1efe5a76b1
content_archive: Add BKTR header parsing to NCA
2018-09-04 16:22:25 -04:00
Zach Hilman
9951f6d054
registration: Add RegisteredCacheUnion
...
Aggregates multiple caches into one interface
2018-09-04 16:21:40 -04:00
Zach Hilman
87be4bc283
main: Only show DRD deprecation warning once
2018-09-04 14:44:48 -04:00
Zach Hilman
e973cceadd
control_metadata: Use alternate language names if AmericanEnglish isn't available
2018-09-04 14:30:03 -04:00
Zach Hilman
23d2c50479
card_image: Add program title ID getter
2018-09-04 14:29:19 -04:00
Zach Hilman
e4e55d064e
nsp: Comply with style and performance guidelines
2018-09-04 14:29:19 -04:00
Zach Hilman
f7eaea424d
registration: Add support for installing NSP files
2018-09-04 14:28:41 -04:00
Zach Hilman
5c8aff984e
card_image: Parse XCI secure partition with NSP
...
Eliminated duplicate code and adds support for Rev1+ carts
2018-09-04 14:27:33 -04:00
Zach Hilman
93703431e2
file_sys: Add Nintendo Submission Package (NSP)
2018-09-04 14:25:54 -04:00
Lioncash
a813c10e1c
file_sys: Replace includes with forward declarations where applicable
...
Cuts down on include dependencies, resulting in less files that need to
be rebuilt when certain things are changed.
2018-09-03 22:52:24 -04:00
Lioncash
a405373144
vfs_real: Forward declare IOFile
...
Eliminates the need to rebuild some source files if the file_util header
ever changes. This also uncovered some indirect inclusions, which have
also been fixed.
2018-09-02 12:38:14 -04:00
Lioncash
4a587b81b2
core/core: Replace includes with forward declarations where applicable
...
The follow-up to e2457418da
, which
replaces most of the includes in the core header with forward declarations.
This makes it so that if any of the headers the core header was
previously including change, then no one will need to rebuild the bulk
of the core, due to core.h being quite a prevalent inclusion.
This should make turnaround for changes much faster for developers.
2018-08-31 16:30:14 -04:00
bunnei
90fd03015a
Merge pull request #1188 from lioncash/unused
...
vfs_real: Remove unused variable in CreateDirectoryRelative()
2018-08-27 18:24:23 -04:00
Lioncash
c6024379a4
vfs_real: Remove unused variable in CreateDirectoryRelative()
2018-08-27 15:58:23 -04:00
Lioncash
d3934d7da7
registered_cache: Get rid of variable shadowing in ProcessFiles()
...
Prevents compiler warnings.
2018-08-27 15:55:56 -04:00
Zach Hilman
6314a799aa
file_sys/crypto: Fix missing/unnecessary includes
2018-08-24 22:15:32 -04:00
Zach Hilman
d1a6dd61d1
xci: Ignore NCA files with updates in secure
2018-08-23 18:53:37 -04:00
Zach Hilman
4f18c17df7
content_archive: Add update title detection
...
This is needed because the title IDs of update NCAs will not use the update title ID. The only sure way to tell is to look for a partition with BKTR crypto.
2018-08-23 18:53:13 -04:00
Zach Hilman
119ab308b5
key_manager: Create keys dir if it dosen't exist
...
On call to WriteKeyToFile, so that the autogenerated file can be written.
2018-08-23 11:53:30 -04:00
Zach Hilman
a7e8d10969
file_sys: Cut down on includes and copies
2018-08-23 11:53:30 -04:00
Zach Hilman
42dc856ce1
crypto: Eliminate magic constants
2018-08-23 11:53:30 -04:00
Zach Hilman
ab44192ab0
file_sys: Implement NAX containers
2018-08-23 11:53:30 -04:00
Zach Hilman
8b52d6682a
registration: Add GetEntryUnparsed methods
...
Returns the file before calling parser on it.
2018-08-23 11:53:30 -04:00
Zach Hilman
13524578b6
sdmc_factory: Add SDMC RegisteredCache getter
2018-08-23 11:53:30 -04:00
Zach Hilman
bf33f80fae
vfs: Add GetOrCreateDirectoryRelative method
2018-08-23 11:52:44 -04:00
Zach Hilman
c4845df3d4
xts_encryption_layer: Implement XTSEncryptionLayer
2018-08-23 11:52:44 -04:00
Zach Hilman
a9dc5a3c10
xci: Fix error masking issue
...
Prevents NCA-related errors from being masked into MissingProgramNCA or MissingKeyFile
2018-08-23 11:52:44 -04:00
bunnei
b38d67d940
Merge pull request #1136 from tech4me/master
...
qt/main: Port part of citra(#3411 ), open savedata works
2018-08-22 01:30:08 -04:00
Lioncash
29ac15d1b8
vfs: Replace mode.h include with forward declarations where applicable
...
Avoids the need to rebuild these source files if the mode header
changes.
2018-08-21 15:06:42 -04:00
Lioncash
bfb28c5b3f
sdmc_factory: Remove unnecessary core include
...
This doesn't require the central core header to be included, it just
needs the vfs headers.
2018-08-21 07:54:29 -04:00
tech4me
cc71832b19
qt/main: Port part of citra( #3411 ), open savedata works
2018-08-21 02:04:33 -07:00
Lioncash
477eee3993
service/filesystem: Use forward declarations where applicable
...
Avoids the need to rebuild multiple source files if the filesystem code
headers change.
This also gets rid of a few instances of indirect inclusions being
relied upon
2018-08-20 23:28:46 -04:00
Lioncash
96463d0a55
romfs_factory: Remove unnecessary includes and use forward declarations where applicable
...
Avoids the need to rebuild whatever includes the romfs factory header if
the loader header ever changes. We also don't need to include the main
core header. We can instead include the headers we specifically need.
2018-08-20 20:27:00 -04:00
Zach Hilman
e8cb6f5c9b
registration: Add Data_Unknown5 NCAContentType
2018-08-20 17:34:18 -04:00
Zach Hilman
27da7bc9da
filesystem: Add support for loading of system archives
2018-08-18 21:28:23 -04:00
Lioncash
b39cd70cd4
common: Namespace hex_util.h/.cpp
...
It's in the common code, so it should be under the Common namespace like
everything else.
2018-08-15 23:24:00 -04:00
bunnei
c594ec3417
Merge pull request #1005 from DarkLordZach/registered-fmt
...
file_sys: Add support for registration format
2018-08-15 23:11:58 -04:00
Lioncash
87d8a9c986
loader: Make ResultStatus directly compatible with fmt
...
We can make the enum class type compatible with fmt by providing an
overload of operator<<.
While we're at it, perform proper bounds checking. If something exceeds
the array, it should be a hard fail, because it's, without a doubt, a
programmer error in this case.
2018-08-15 05:52:37 -04:00
bunnei
e67630b51e
Merge pull request #1032 from lioncash/sanitize
...
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
2018-08-13 01:43:35 -04:00
bunnei
bd14653417
Merge pull request #1031 from lioncash/verbosity
...
card_image: Simplify return statement of GetSubdirectories()
2018-08-13 01:42:07 -04:00
Lioncash
b82b093108
vfs: Make VfsFilesystem constructor explicit
...
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
2018-08-12 16:55:40 -04:00
Lioncash
cf0a7cd1c1
vfs: Make type hierarchy objects classes instead of structs
...
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
2018-08-12 16:55:40 -04:00
Zach Hilman
35e4a47be0
registration: Various style and documentation improvements
...
Fix logic in RealVfsFilesystem Create methods
Remove magic numbers
Fix regex errors
2018-08-12 15:55:44 -04:00
Lioncash
75bba25009
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
...
Previously these were being unused (or partially unused). While we're at
it, use better naming to make it visibly obvious which variant of the
path is being used.
2018-08-12 04:05:01 -04:00
Lioncash
7b6519741b
card_image: Use type aliases to shorten definitions
...
We have the aliases, so we may as well use 'em.
2018-08-12 03:57:16 -04:00
Lioncash
d6a1a43854
card_image: Simplify return statement of GetSubdirectories()
...
We don't need to write out the construction long-form, we can just let
the language itself work it out off the return type.
2018-08-12 03:53:20 -04:00
David Marcec
98b940052c
made ResultStatus a u16
2018-08-12 14:56:22 +10:00
Zach Hilman
6b76b77400
registration: Add support for force overwrite of installed
2018-08-11 23:01:42 -04:00
Zach Hilman
8f06a0f898
vfs_real: Add CreateFullPath to Create* operations
2018-08-11 22:50:48 -04:00
Zach Hilman
dda8ef11c7
control_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
149bda980a
romfs: Remove cyclic shared_ptr leak in romfs code
2018-08-11 22:50:48 -04:00
Zach Hilman
893447b6b0
registration: Update documentation and style
2018-08-11 22:50:48 -04:00
Zach Hilman
22bdddd6f0
nca_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
62e859c6c7
bis_factory: Create NAND dirs if they don't exist
2018-08-11 22:50:48 -04:00
Zach Hilman
3b3c919e20
registration: Take RawCopy function as parameter
...
Instead of defaulting to VfsRawCopy
2018-08-11 22:50:48 -04:00
Zach Hilman
e5504a060d
registered_cache: Fix missing reading from yuzu_meta
2018-08-11 22:50:48 -04:00
Zach Hilman
167bfddafa
file_sys: Comply to style guidelines
2018-08-11 22:50:48 -04:00
Zach Hilman
bfb945c243
qt: Add 'Install to NAND' option to menu
...
Prompts for title type on NCA files.
2018-08-11 22:50:48 -04:00
Zach Hilman
a91983b11c
file_sys: Add RegisteredCache
...
Manages NAND NCA get and install.
2018-08-11 22:50:48 -04:00
Zach Hilman
9aab787122
file_sys: Add support for parsing NCA metadata (CNMT)
2018-08-11 22:50:48 -04:00
Zach Hilman
ab8acce645
card_image: Add accessor for all NCAs in XCI
2018-08-11 22:50:48 -04:00
Zach Hilman
9b0e3556ed
vfs_real: Add CreateFullPath to CreateFile
...
Fixes bugs with calling CreateFile when the immediate directory does not exist.
2018-08-11 22:50:48 -04:00
Zach Hilman
70a510bd8f
bis_factory: Add partial implementation of BISFactory
...
Creates and stores RegisteredCaches for user and system NAND, as creation of a RegisteredCache is expensive.
2018-08-11 22:50:48 -04:00
Zach Hilman
42114e1df4
vfs: Add ConcatenatedVfsFile
2018-08-11 22:50:08 -04:00
Zach Hilman
ec3bef7b4c
loader: Add more descriptive errors
...
Full list of new errors and descriptions in core/loader/loader.h
2018-08-09 21:06:59 -04:00
bunnei
69cd213fac
Merge pull request #990 from lioncash/entry
...
fsp_srv: Emplace entries first when building index instead of emplacing last
2018-08-09 19:29:36 -04:00
Zach Hilman
668458525e
vfs: Fix documentation
2018-08-08 21:45:04 -04:00
Zach Hilman
94cf327e77
vfs: Fix typo in VfsFilesystem docs
2018-08-08 21:18:45 -04:00
Zach Hilman
2b6128fe0b
file_util: Use enum instead of bool for specifing path behavior
2018-08-08 21:18:45 -04:00
Zach Hilman
656e97df16
vfs: Use RealVfsFilesystem for fs-operations in RealVfsDirectory
2018-08-08 21:18:45 -04:00
Zach Hilman
52a2e42cb9
file_sys: Add missing include in savedata_factory
2018-08-08 21:18:45 -04:00
Zach Hilman
aaa8fdea52
vfs: Add unreachable assert to file permissions converter
2018-08-08 21:18:45 -04:00
Zach Hilman
2de2ec25d6
vfs: Add RealVfsFilesystem implementation
2018-08-08 21:18:45 -04:00
Zach Hilman
3bf488ce52
vfs: Add VfsFilesystem interface and default implementation
2018-08-08 21:18:45 -04:00
Lioncash
7353cfc781
fsp_srv: Use std::string_view's copy() function instead of strncpy()
...
Given elements inserted into a vector are zeroed out, we can just copy
MAX_LEN - 1 elements and the data will already be properly null
terminated.
2018-08-08 18:51:52 -04:00
bunnei
fd9da4232b
Merge pull request #850 from DarkLordZach/icon-meta
...
Add Icons and Metadata Support
2018-08-08 12:27:19 -04:00
Zach Hilman
91cfe70301
loader: Add icon and title support to XCI
2018-08-06 23:13:42 -04:00
Zach Hilman
5927cf0e17
Use const where applicable
2018-08-06 23:06:33 -04:00
Zach Hilman
9e88f03e75
Avoid parsing RomFS to directory in NCA
2018-08-06 23:06:33 -04:00
Zach Hilman
2cc962e171
content_archive: Add support for titlekey cryptography
2018-08-04 14:57:21 -04:00
bunnei
2b06301dbf
Merge pull request #849 from DarkLordZach/xci
...
XCI and Encrypted NCA Support
2018-08-04 14:33:11 -04:00
Lioncash
42a4c6b79e
vfs_vector: Remove unused variable in FindAndRemoveVectorElement()
...
This wasn't being used for anything, so it can be removed.
2018-08-02 11:40:24 -04:00
Lioncash
cec9e9b811
vfs_vector: Avoid unnecessary copies where applicable
...
The lambda elements should be taken by const reference here, and we can
move the virtual directory passed to ReplaceFileWithSubdirectory()
2018-08-02 11:37:39 -04:00
Zach Hilman
13cdf1f159
Add missing parameter to files.push_back()
2018-08-01 00:16:54 -04:00
Zach Hilman
187d8e215f
Use more descriptive error codes and messages
2018-08-01 00:16:54 -04:00
Zach Hilman
a9c921a41d
Use ErrorEncrypted where applicable and fix no keys crash
2018-08-01 00:16:54 -04:00
Zach Hilman
03149d3e4a
Add missing includes and use const where applicable
2018-08-01 00:16:54 -04:00
Zach Hilman
239a3113e4
Make XCI comply to review and style guidelines
2018-08-01 00:16:54 -04:00
Zach Hilman
22342487e8
Extract mbedtls to cpp file
2018-08-01 00:16:54 -04:00
Zach Hilman
df5b75694f
Remove files that are not used
2018-08-01 00:16:54 -04:00
Lioncash
57c4d7aa00
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
...
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-29 06:16:59 -04:00
Zach Hilman
906d785c73
RomFS Extraction
2018-07-27 18:14:03 -04:00
bunnei
bc5b65a1b0
Merge pull request #785 from lioncash/fs
...
partition_filesystem: Use std::move where applicable
2018-07-23 20:36:59 -07:00
Zach Hilman
59cb258409
VFS Regression and Accuracy Fixes ( #776 )
...
* 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-23 19:40:35 -07:00
Lioncash
db48ebb9c9
partition_filesystem: Use std::move where applicable
...
Avoids copying a std::string instance and avoids unnecessary atomic
reference count incrementing and decrementing.
2018-07-23 20:27:11 -04:00
Zach Hilman
e8f641a52d
NRO Assets and NACP file format
...
Cleanup
Review fixes
2018-07-23 12:34:26 -04:00
Lioncash
0081252d31
vfs: Correct file_p variable usage within InterpretAsDirectory()
...
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-22 03:22:28 -04:00
Lioncash
398444e676
file_util, vfs: Use std::string_view where applicable
...
Avoids unnecessary construction of std::string instances where
applicable.
2018-07-22 03:22:21 -04:00
Lioncash
0ba7fe4ab1
file_util: Use a u64 to represent number of entries
...
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-21 22:42:08 -04:00
bunnei
0f20fa5a1e
Merge pull request #754 from lioncash/part
...
partition_filesystem, vfs_real: Minor changes
2018-07-21 11:38:52 -07:00
bunnei
89cc8c1617
Merge pull request #755 from lioncash/ctor
...
file_sys/errors: Remove redundant object constructor calls
2018-07-21 10:53:53 -07:00
Lioncash
459e158340
file_sys/errors: Remove redundant object constructor calls
...
Given we're already constructing the error code, we don't need to call
the constructor inside of it.
2018-07-20 22:37:54 -04:00
Lioncash
b46c0ed1fa
vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories()
...
We already return by value, so we don't explicitly need to make the
copy.
2018-07-20 22:30:22 -04:00
Lioncash
ec71915ede
partition_filesystem, vfs_real: Add missing standard includes
2018-07-20 22:28:35 -04:00
Lioncash
d36e327ba6
partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable
...
Avoids unnecessary atomic increment and decrement operations.
2018-07-20 22:23:58 -04:00
Lioncash
2b91386e15
partition_filesystem, vfs_real: Use std::distance() instead of subtraction
...
This is a little bit more self-documenting on what is being done here.
2018-07-20 22:19:17 -04:00
Lioncash
3e0727df1b
vfs_offset: Simplify TrimToFit()
...
We can simply use std::clamp() here, instead of using an equivalent
with std::max() and std::min().
2018-07-20 22:04:37 -04:00
Lioncash
894b0de0f2
vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by 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-20 21:51:30 -04:00
Lioncash
dd09439fee
vfs: Use variable template variants of std::is_trivially_copyable
...
Provides the same behavior, but with less writing
2018-07-20 21:47:19 -04:00
Lioncash
05231d8b08
vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member 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-20 21:40:15 -04:00
bunnei
ffbd51e207
Merge pull request #737 from lioncash/move
...
filesys/loader: std::move VirtualFile instances in constructors where applicable
2018-07-20 09:21:15 -07:00
Lioncash
0e9d58e82a
vfs_offset: std::move file and name parameters of OffsetVfsFile
...
Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
2018-07-20 00:04:54 -04:00