| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
* remove unnecessary if-statements
* Addressed feedback
|
| |
|
|\
| |
| | |
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
|
| |
| |
| |
| | |
Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS
|
| | |
|
| | |
|
|\ \
| | |
| | | |
ips_layer: Add support for IPSwitch executable patches
|
| | |
| | |
| | | |
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.
|
| | | |
|
| |/ |
|
| | |
|
| |
| |
| |
| | |
Reads as Update (NSP) in add-ons
|
|/
|
|
| |
Will prefer any installed update over the packed version.
|
|
|
|
| |
Avoid resource-heavy classes and remove quasi-duplicated code.
|
|
|
|
| |
While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
|
| |
|
| |
|
|
|
| |
Command #5
|
| |
|
|
|
|
|
| |
Avoids the need to nest code quite a bit by early-exiting in error
cases.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
These includes were previously being satisfied indirectly.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Right now only includes Updates, but should eventually contain all of the other patches we need.
|