summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge pull request #722 from lioncash/signedGravatar bunnei2018-07-192-8/+4
|\ \ \ \ | | | | | | | | | | hid: Resolve a signed/unsigned comparison warning
| * | | | hid: Use a ranged-for loops in UpdatePadCallbackGravatar Lioncash2018-07-191-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Modernizes the loops themselves while also getting rid of a signed/unsigned comparison in a loop condition.
| * | | | hid: Use HID_NUM_LAYOUTS constant for indicating size of the layouts arrayGravatar Lioncash2018-07-191-1/+1
| |/ / / | | | | | | | | | | | | Gets rid of the use of a magic constant
* | | | Merge pull request #721 from lioncash/svcGravatar bunnei2018-07-191-3/+4
|\ \ \ \ | | | | | | | | | | svc: Correct always true assertion case in SetThreadCoreMask
| * | | | svc: Correct always true assertion case in SetThreadCoreMaskGravatar Lioncash2018-07-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reason this would never be true is that ideal_processor is a u8 and THREADPROCESSORID_DEFAULT is an s32. In this case, it boils down to how arithmetic conversions are performed before performing the comparison. If an unsigned value has a lesser conversion rank (aka smaller size) than the signed type being compared, then the unsigned value is promoted to the signed value (i.e. u8 -> s32 happens before the comparison). No sign-extension occurs here either. An alternative phrasing: Say we have a variable named core and it's given a value of -2. u8 core = -2; This becomes 254 due to the lack of sign. During integral promotion to the signed type, this still remains as 254, and therefore the condition will always be true, because no matter what value the u8 is given it will never be -2 in terms of 32 bits. Now, if one type was a s32 and one was a u32, this would be entirely different, since they have the same bit width (and the signed type would be converted to unsigned instead of the other way around) but would still have its representation preserved in terms of bits, allowing the comparison to be false in some cases, as opposed to being true all the time. --- We also get rid of two signed/unsigned comparison warnings while we're at it.
* | | | | Merge pull request #719 from lioncash/docsGravatar bunnei2018-07-192-5/+5
|\ \ \ \ \ | | | | | | | | | | | | loader: Amend Doxygen comments
| * | | | | loader: Amend Doxygen commentsGravatar Lioncash2018-07-192-5/+5
| |/ / / / | | | | | | | | | | | | | | | These weren't adjusted when VFS was introduced
* | | | | Merge pull request #718 from lioncash/readGravatar bunnei2018-07-191-4/+6
|\ \ \ \ \ | | | | | | | | | | | | loader/nso: Check if read succeeded in IdentifyFile() before checking magic value
| * | | | | loader/nso: Check if read succeeded in IdentifyFile() before checking magic ↵Gravatar Lioncash2018-07-191-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | value We should always assume the filesystem is volatile and check each IO operation. While we're at it reorganize checks so that early-out errors are near one another.
* | | | | | Merge pull request #717 from lioncash/explicitGravatar bunnei2018-07-1922-25/+25
|\ \ \ \ \ \ | | | | | | | | | | | | | | hle/service: Make constructors explicit where applicable
| * | | | | | hle/service: Make constructors explicit where applicableGravatar Lioncash2018-07-1922-25/+25
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | Prevents implicit construction and makes these lingering non-explicit constructors consistent with the rest of the other classes in services.
* | | | | | Merge pull request #716 from lioncash/constructGravatar bunnei2018-07-191-9/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | nvflinger: Emplace Display instances directly
| * | | | | | nvflinger: Emplace Display instances directlyGravatar Lioncash2018-07-191-9/+4
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can use emplace_back to construct the Display instances directly, instead of constructing them separately and copying them, avoiding the need to copy std::string and std::vector instances that are part of the Display struct.
* | | | | | Merge pull request #715 from lioncash/const-refGravatar bunnei2018-07-191-1/+1
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | nvdrv: Take std::string by const reference in GetDevice()
| * | | | | nvdrv: Take std::string by const reference in GetDevice()Gravatar Lioncash2018-07-191-1/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | This is only ever used as a lookup into the device map, so we don't need to take the std::string instance by value here.
* | | | | Merge pull request #720 from Subv/getentrytype_rootGravatar Sebastian Valle2018-07-191-0/+4
|\ \ \ \ \ | |_|_|_|/ |/| | | | Filesystem: Return EntryType::Directory for the root directory.
| * | | | Filesystem: Return EntryType::Directory for the root directory.Gravatar Subv2018-07-191-0/+4
| | | | | | | | | | | | | | | | | | | | It is unknown if this is correct behavior, but it makes sense and fixes a regression with Stardew Valley.
* | | | | Merge pull request #714 from lioncash/indexGravatar Sebastian Valle2018-07-191-1/+1
|\ \ \ \ \ | | | | | | | | | | | | hle_ipc: Amend usage of buffer_index within one of HLERequestContext's WriteBuffer() overloads
| * | | | | hle_ipc: Amend usage of buffer_index within one of HLERequestContext's ↵Gravatar Lioncash2018-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WriteBuffer() overloads Previously, the buffer_index parameter was unused, causing all writes to use the buffer index of zero, which is not necessarily what is wanted all the time. Thankfully, all current usages don't use a buffer index other than zero, so this just prevents a bug before it has a chance to spring.
* | | | | | Merge pull request #712 from lioncash/fspGravatar bunnei2018-07-191-17/+22
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | fsp_srv: Misc individual changes
| * | | | | fsp_srv: Remove unnecessary vector construction in IFile's Write() functionGravatar Lioncash2018-07-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can avoid constructing a std::vector here by simply passing a pointer to the original data and the size of the copy we wish to perform to the backend's Write() function instead, avoiding copying the data where it's otherwise not needed.
| * | | | | fsp_srv: Remove unnecessary std::vector construction in IDirectory's Read() ↵Gravatar Lioncash2018-07-191-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function We were using a second std::vector as a buffer to convert another std::vector's data into a byte sequence, however we can just use pointers to the original data and use them directly with WriteBuffer, which avoids copying the data at all into a separate std::vector. We simply cast the pointers to u8* (which is allowed by the standard, given std::uint8_t is an alias for unsigned char on platforms that we support).
| * | | | | fsp_srv: Make IStorage constructor explicitGravatar Lioncash2018-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Prevents implicit conversions.
| * | | | | fsp_srv: Add missing includesGravatar Lioncash2018-07-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Gets rid of relying on indirect inclusions.
| * | | | | fsp_srv: Resolve sign-mismatch warnings in assertion comparisonsGravatar Lioncash2018-07-191-3/+3
| | | | | |
| * | | | | fsp_srv: Respect write length in Write()Gravatar Lioncash2018-07-191-4/+5
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we were just copying the data whole-sale, even if the length was less than the total data size. This effectively makes the actual_data vector useless, which is likely not intended. Instead, amend this to only copy the given length amount of data. At the same time, we can avoid zeroing out the data before using it by passing iterators to the constructor instead of a size.
* | | | | Merge pull request #713 from lioncash/filesysGravatar bunnei2018-07-191-3/+3
|\ \ \ \ \ | | | | | | | | | | | | filesystem: Minor changes
| * | | | | filesystem: std::move VirtualDir instance in VfsDirectoryServiceWrapper's ↵Gravatar Lioncash2018-07-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constructor Avoids unnecessary atomic reference count incrementing and decrementing
| * | | | | filesystem: Use std::string's empty() function instead of comparing against ↵Gravatar Lioncash2018-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a literal This is simply a basic value check as opposed to potentially doing string based operations (unlikely, but still, avoiding it is free).
| * | | | | filesystem: Remove pragma disabling global optimizationsGravatar Lioncash2018-07-191-2/+0
| |/ / / / | | | | | | | | | | | | | | | This was just an artifact missed during PR review.
* | | | | Merge pull request #694 from lioncash/warnGravatar bunnei2018-07-192-6/+4
|\ \ \ \ \ | |_|_|_|/ |/| | | | loader/{nro, nso}: Resolve compilation warnings
| * | | | loader/nro: Resolve sign mismatch warningsGravatar Lioncash2018-07-181-1/+1
| | | | |
| * | | | loader/nso: Remove unnecessary vector resizesGravatar Lioncash2018-07-181-4/+2
| | | | | | | | | | | | | | | | | | | | We can just initialize these vectors directly via their constructor.
| * | | | loader/nso: Resolve sign mismatch warningsGravatar Lioncash2018-07-181-1/+1
| | | | |
* | | | | Merge pull request #703 from lioncash/constGravatar bunnei2018-07-192-2/+2
|\ \ \ \ \ | | | | | | | | | | | | savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
| * | | | | savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const ↵Gravatar Lioncash2018-07-182-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | member function This function doesn't alter class state.
* | | | | | Merge pull request #702 from lioncash/initializeGravatar bunnei2018-07-192-24/+15
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
| * | | | | partition_filesystem: Ensure all class members of PartitionFilesystem are ↵Gravatar Lioncash2018-07-182-24/+15
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | initialized Previously is_hfs and pfs_header members wouldn't be initialized in the constructor, as they were stored in locals instead. This would result in things like GetName() and PrintDebugInfo() behaving incorrectly. While we're at it, initialize the members to deterministic values as well, in case loading ever fails.
* | | | | Merge pull request #701 from lioncash/movingGravatar bunnei2018-07-192-2/+10
|\ \ \ \ \ | |_|_|_|/ |/| | | | content_archive: Minor changes
| * | | | content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const referenceGravatar Lioncash2018-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | There's no need to take this by value when it's possible to avoid unnecessary copies entirely like this.
| * | | | content_archive: Add missing standard includesGravatar Lioncash2018-07-181-0/+5
| | | | |
| * | | | content_archive: std::move VirtualFile in NCA's constructorGravatar Lioncash2018-07-181-1/+4
| |/ / / | | | | | | | | | | | | | | | | Gets rid of unnecessary atomic reference count incrementing and decrementing.
* | | | Merge pull request #699 from lioncash/vfsGravatar bunnei2018-07-191-6/+6
|\ \ \ \ | |_|_|/ |/| | | vfs: Deduplicate accumulation code in VfsDirectory's GetSize()
| * | | vfs: Deduplicate accumulation code in VfsDirectory's GetSize()Gravatar Lioncash2018-07-181-6/+6
| |/ / | | | | | | | | | We can just use a generic lambda to avoid writing the same thing twice.
* | | Merge pull request #692 from lioncash/assignGravatar bunnei2018-07-181-1/+1
|\ \ \ | | | | | | | | address_arbiter: Correct assignment within an assertion statement in WakeThreads()
| * | | address_arbiter: Correct assignment within an assertion statement in ↵Gravatar Lioncash2018-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WakeThreads() This was introduced within 4f81bc4e1bd12e4df7410c6790ba818d8dbba9c0, and considering there's no comment indicating that this is intentional, this is very likely a bug.
* | | | Merge pull request #690 from lioncash/moveGravatar bunnei2018-07-189-16/+26
|\ \ \ \ | |_|/ / |/| | | core/memory, core/hle/kernel: Use std::move where applicable
| * | | core/memory, core/hle/kernel: Use std::move where applicableGravatar Lioncash2018-07-189-16/+26
| | | | | | | | | | | | | | | | Avoids pointless copies
* | | | Merge pull request #691 from lioncash/guardGravatar bunnei2018-07-181-0/+2
|\ \ \ \ | |_|_|/ |/| | | service/prepo: Add missing header guard
| * | | service/prepo: Add missing header guardGravatar Lioncash2018-07-181-0/+2
| | |/ | |/|