Age | Commit message (Collapse) | Author |
|
CodeToUTF8() and UTF8ToUTF16()
There's no need to perform the resize separately here, since the
constructor allows presizing the buffer.
Also move the empty string check before the construction of the string
to make the early out more straightforward.
|
|
This is equivalent to doing:
push_back(std::string(""));
which is likely not to cause issues, assuming a decent std::string
implementation with small-string optimizations implemented in its
design, however it's still a little unnecessary to copy that buffer
regardless. Instead, we can use emplace_back() to directly construct the
empty string within the std::vector instance, eliminating any possible
overhead from the copy.
|
|
We can just use the variant of std::string's replace() function that can
replace an occurrence with N copies of the same character, eliminating
the need to allocate a std::string containing a buffer of spaces.
|
|
file_util, vfs: Use std::string_view where applicable
|
|
Avoids unnecessary construction of std::string instances where
applicable.
|
|
file_util: Remove goto usages from Copy()
|
|
We can just leverage std::unique_ptr to automatically close these for us
in error cases instead of jumping to the end of the function to call
fclose on them.
|
|
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.
|
|
Avoids unnecessary copies when building up the FST entries.
|
|
file_util: Remove redundant duplicate return in GetPathWithoutTop()
|
|
common: Remove synchronized_wrapper.h
|
|
Instead of using an unsigned int as a parameter and expecting a user to
always pass in the correct values, we can just convert the enum into an
enum class and use that type as the parameter type instead, which makes
the interface more type safe.
We also get rid of the bookkeeping "NUM_" element in the enum by just
using an unordered map. This function is generally low-frequency in
terms of calls (and I'd hope so, considering otherwise would mean we're
slamming the disk with IO all the time) so I'd consider this acceptable
in this case.
|
|
Given both operands are the same type, there won't be an issue with
overload selection that requires making this explicit.
|
|
|
|
This is entirely unused in the codebase.
|
|
logging: Use std::string_view where applicable
|
|
Allows avoiding string copies by letting the strings be moved into the
function calls.
|
|
This avoids a redundant std::string construction if a key doesn't exist
in the map already.
e.g.
data[key] requires constructing a new default instance of the value in
the map (but this is wasteful, since we're already setting something
into the map over top of it).
|
|
Avoids potential dynamic allocation occuring during program launch
|
|
Allows avoiding constructing std::string instances, since this only
reads an arbitrary sequence of characters.
We can also make ParseFilterRule() internal, since it doesn't depend on
any private instance state of Filter
|
|
A few inclusions were being satisfied indirectly. To prevent breakages
in the future, include these directly.
|
|
These can just use a view to a string since its only comparing against
two names in both cases for matches. This avoids constructing
std::string instances where they aren't necessary.
|
|
common/swap: Minor changes
|
|
common/common_funcs: Remove unused rotation functions
|
|
common/misc: Deduplicate code in GetLastErrorMsg()
|
|
file_util: return string by const reference for GetExeDirectory()
|
|
|
|
|
|
|
|
These are unused and essentially don't provide much benefit either. If
we ever need rotation functions, these can be introduced in a way that
they don't sit in a common_* header and require a bunch of ifdefing to
simply be available
|
|
Android and macOS have supported thread_local for quite a while, but
most importantly is that we don't even really need it. Instead of using
a thread-local buffer, we can just return a non-static buffer as a
std::string, avoiding the need for that quality entirely.
|
|
This disallows modifying the internal string buffer (which shouldn't be
modified anyhow).
|
|
Easy TODO
|
|
externals: update fmt to version 5.1.0
|
|
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
|
|
Previously, we were on 4.1.0, which was a major version behind.
|
|
We can just take the value parameter by value which allows both moving
into it, and copies at the same time, depending on the calling code.
|
|
These operators don't modify internal class state, so they can be made
const member functions. While we're at it, drop the unnecessary inline
keywords. Member functions that are defined in the class declaration are
already inline by default.
|
|
This provides the equivalent behavior, but without as much boilerplate.
While we're at it, explicitly default the move constructor, since we
have a move-assignment operator defined.
|
|
Minor logging improvements
|
|
|
|
|
|
* More improvements to GDBStub
- Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS.
- List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names.
- Initial support for floating point registers.
* Tidy up as requested in PR feedback
* Tidy up as requested in PR feedback
|
|
Port #3579 from Citra: Clean up architecture-specific defines
|
|
Port #3474 from Citra: Do not crash on unimplemented code in debug build
|
|
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
|
|
|
|
|
|
Remove some references to Citra
|
|
* Add VfsFile and VfsDirectory classes
* Finish abstract Vfs classes
* Implement RealVfsFile (computer fs backend)
* Finish RealVfsFile and RealVfsDirectory
* Finished OffsetVfsFile
* More changes
* Fix import paths
* Major refactor
* Remove double const
* Use experimental/filesystem or filesystem depending on compiler
* Port partition_filesystem
* More changes
* More Overhaul
* FSP_SRV fixes
* Fixes and testing
* Try to get filesystem to compile
* Filesystem on linux
* Remove std::filesystem and document/test
* Compile fixes
* Missing include
* Bug fixes
* Fixes
* Rename v_file and v_dir
* clang-format fix
* Rename NGLOG_* to LOG_*
* Most review changes
* Fix TODO
* Guess 'main' to be Directory by filename
|