Age | Commit message (Collapse) | Author |
|
DecryptPackage2()
We can just reserve the memory then perform successive insertions
instead of needing to use memcpy. This also avoids the need to zero out
the output vector's memory before performing the insertions.
We can also std::move the output std::vector into the destination so
that we don't need to make a completely new copy of the vector, getting
rid of an unnecessary allocation.
Additionally, we can use iterators to determine the beginning and end
ranges of the std::vector instances that comprise the output vector, as
the end of one range just becomes the beginning for the next successive
range, and since std::vector's iterator constructor copies data within
the range [begin, end), this is more straightforward and gets rid of the
need to have an offset variable that keeps getting incremented to
determine where to do the next std::memcpy.
|
|
Aside from emplacing elements into the map, the map itself is never
actually queried for contained data.
|
|
These are only ever read from, so we don't need to make a copy of all
the keys here.
|
|
Given it's only used in one spot and has a fairly generic name, we can
just specify it directly in the function call. This also the benefit of
automatically moving it.
|
|
Commented out code shouldn't be left in without a reason indicating why
in a comment.
|
|
|
|
Instead, we can make it part of the type and make named variables for
them, so they only require one definition (and if they ever change for
whatever reason, they only need to be changed in one spot).
|
|
Given the VirtualFile instance isn't stored into the class as a data
member, or written to, this can just be turned into a const reference,
as the constructor doesn't need to make a copy of it.
|
|
Orders the members in the exact order they would be initialized. This
also prevents compiler warnings about this sort of thing.
|
|
Gets unused includes out of the headers and moves them into the cpp file
if they're used there instead.
|
|
back_inserter
If the data is unconditionally being appended to the back of a
std::vector, we can just directly insert it there without the need to
insert all of the elements one-by-one with a std::back_inserter.
|
|
If a conditional (or it's body) travels more than one line, it should be
braced.
|
|
Given the filesystem should always be assumed to be volatile, we should
check and bail out if a seek operation isn't successful. This'll prevent
potentially writing/returning garbage data from the function in rare
cases.
This also allows removing a check to see if an offset is within the
bounds of a file before perfoming a seek operation. If a seek is
attempted beyond the end of a file, it will fail, so this essentially
combines two checks into one in one place.
|
|
Given the file is opened a few lines above and no operations are done,
other than check if the file is in a valid state, the read/write pointer
will always be at the beginning of the file.
|
|
crypto: Add support for full key derivation
|
|
kernel/process: Make CodeSet a regular non-inherited object
|
|
Implemented helper function to correctly calculate a texture's size
|
|
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
|
|
|
|
Fixed incorrect types for svcBreak
|
|
These only exist to ferry data into a Process instance and end up going
out of scope quite early. Because of this, we can just make it a plain
struct for holding things and just std::move it into the relevant
function. There's no need to make this inherit from the kernel's Object
type.
|
|
Passing an invalid nmap handle to Remap should throw an error
|
|
thread: Remove unnecessary memset from ResetThreadContext()
|
|
Added error codes for nvmap
|
|
Regular value initialization is adequate here for zeroing out data. It
also has the benefit of not invoking undefined behavior if a non-trivial
type is ever added to the struct for whatever reason.
|
|
|
|
|
|
|
|
HwOpus, Implemented DecodeInterleavedWithPerformance
|
|
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
|
|
nvhost_as_gpu: Flush/invalidate CPU VAddr on UnmapBuffer.
|
|
|
|
Added error for invalid nmap handles
|
|
|
|
|
|
Used by sonic ages
|
|
Fixed block height settings for RenderTargets and Depth Buffers
|
|
This adds the missing address range checking that the service functions
do before attempting to map or unmap memory. Given that both service
functions perform the same set of checks in the same order, we can wrap
these into a function and just call it from both functions, which
deduplicates a little bit of code.
|
|
Implemented Scissor Testing
|
|
gl_shader_decompiler: Implement geometry shaders
|
|
There's no real need to use a shared pointer in these cases, and only
makes object management more fragile in terms of how easy it would be to
introduce cycles. Instead, just do the simple thing of using a regular
pointer. Much of this is just a hold-over from citra anyways.
It also doesn't make sense from a behavioral point of view for a
process' thread to prolong the lifetime of the process itself (the
process is supposed to own the thread, not the other way around).
|
|
ips_layer: Silence truncation and conversion warnings
|
|
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
|
|
|
|
|
|
signal_debugger seems like a more fitting name
|
|
svcBreak reason should be a u32, not a u64.
|
|
block width and block depth
|
|
gl_shader_decompiler: Remove unused variables in TMML's implementation
|
|
Port citra-emu/citra#4310: "Handle touch input"
|