summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/patch_manager.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-5/+4
| | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
* file_sys/patch_manager: Remove unnecessary if-statements (#1586)Frederic L2018-10-281-7/+6
| | | | | | * remove unnecessary if-statements * Addressed feedback
* patch_manager: Add support for using LayeredFS with DataZach Hilman2018-10-171-2/+3
|
* Merge pull request #1443 from DarkLordZach/lower-loader-logs-1bunnei2018-10-161-2/+8
|\ | | | | content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
| * patch_manager: Move non-Program RomFS patch log to DebugZach Hilman2018-10-131-2/+8
| | | | | | | | Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
* | file_sys/registered_cache: Use unique_ptr and regular pointers instead of shared_ptrs where applicableLioncash2018-10-161-1/+1
|/ | | | | | | | | | | | | | | The data retrieved in these cases are ultimately chiefly owned by either the RegisteredCache instance itself, or the filesystem factories. Both these should live throughout the use of their contained data. If they don't, it should be considered an interface/design issue, and using shared_ptr instances here would mask that, as the data would always be prolonged after the main owner's lifetime ended. This makes the lifetime of the data explicit and makes it harder to accidentally create cyclic references. It also makes the interface slightly more flexible than the previous API, as a shared_ptr can be created from a unique_ptr, but not the other way around, so this allows for that use-case if it ever becomes necessary in some form.
* patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptrLioncash2018-10-091-8/+7
| | | | | | | | | | | | | | Neither of these functions require the use of shared ownership of the returned pointer. This makes it more difficult to create reference cycles with, and makes the interface more generic, as std::shared_ptr instances can be created from a std::unique_ptr, but the vice-versa isn't possible. This also alters relevant functions to take NCA arguments by const reference rather than a const reference to a std::shared_ptr. These functions don't alter the ownership of the memory used by the NCA instance, so we can make the interface more generic by not assuming anything about the type of smart pointer the NCA is contained within and make it the caller's responsibility to ensure the supplied NCA is valid.
* Merge pull request #1423 from DarkLordZach/romfs-file-extsbunnei2018-10-081-1/+9
|\ | | | | fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS
| * patch_manager: Avoid romfs_ext requirement for patchingZach Hilman2018-10-041-4/+1
| |
| * fsmitm_romfsbuild: Extract stubs and IPS to romfs_ext dirZach Hilman2018-10-041-1/+12
| |
* | Merge pull request #1424 from DarkLordZach/ips-witchbunnei2018-10-081-23/+59
|\ \ | | | | | | ips_layer: Add support for IPSwitch executable patches
| * | ips_layer: Fix inaccuracies with comments and flagsZach Hilman2018-10-041-1/+1
| | | | | | | | | Specifically bugs/crashes that arise when putting them in positions that are legal but not typical, such as midline, between patch data, or between patch records.
| * | ips_layer: Deduplicate resource usageZach Hilman2018-10-041-2/+4
| | |
| * | patch_manager: Add support for IPSwitch format patchesZach Hilman2018-10-041-22/+56
| |/
* | romfs_factory: Extract packed update setter to new functionZach Hilman2018-10-051-3/+4
| |
* | patch_manager: Add support for NSP packed updatesZach Hilman2018-10-051-2/+2
| | | | | | | | Reads as Update (NSP) in add-ons
* | patch_manager: Add support for packed updatesZach Hilman2018-10-051-3/+12
|/ | | | Will prefer any installed update over the packed version.
* nso: Optimize loading of IPS patchesZach Hilman2018-10-021-44/+37
| | | | Avoid resource-heavy classes and remove quasi-duplicated code.
* patch_manager: Add PatchNSO functionZach Hilman2018-10-011-0/+94
| | | | While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
* patch_manager: Use strings for patch type instead of enumZach Hilman2018-10-011-19/+31
|
* aoc_u: Extract AccumulateAOCTitleIDs to separate functionZach Hilman2018-10-011-1/+2
|
* aoc_u: Implement GetAddOnContentBaseIdZach Hilman2018-10-011-2/+3
| | | Command #5
* patch_manager: Add DLC recognition to PatchManagerZach Hilman2018-10-011-0/+26
|
* patch_manager: Invert conditionals within ApplyLayeredFS()Lioncash2018-09-261-27/+30
| | | | | Avoids the need to nest code quite a bit by early-exiting in error cases.
* vfs_concat/vfs_layered: Remove friend declarations from ConcatenatedVfsFileLioncash2018-09-261-3/+2
| | | | | | Given these are only added to the class to allow those functions to access the private constructor, it's a better approach to just make them static functions in the interface, to make the dependency explicit.
* fsmitm: Cleanup and modernize fsmitm portZach Hilman2018-09-241-31/+35
|
* patch_manager: Add LayeredFS mods supportZach Hilman2018-09-221-1/+42
|
* file-sys: Default heavy-weight class destructors in the cpp fileLioncash2018-09-201-0/+2
| | | | | | | | | | 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.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-2/+2
|
* file_sys/patch_manager: Add missing includesLioncash2018-09-061-0/+4
| | | | These includes were previously being satisfied indirectly.
* bktr: Fix bucket overlap errorZach Hilman2018-09-041-0/+3
|
* patch_manager: Centralize Control-type NCA parsingZach Hilman2018-09-041-20/+55
|
* game_list: Fix version display on non-NAND titlesZach Hilman2018-09-041-6/+22
|
* bktr: Add logging on successful patchZach Hilman2018-09-041-5/+17
|
* bktr: Fix missing includes and optimize styleZach Hilman2018-09-041-19/+16
|
* file_sys: Add class to manage game patchesZach Hilman2018-09-041-0/+90
Right now only includes Updates, but should eventually contain all of the other patches we need.