IPC: Fixed pushing ResultCodes into the command buffer.

They should have 32 bits of padding after the error code now.
This commit is contained in:
Subv 2018-01-07 09:56:57 -05:00 committed by bunnei
parent 32847d8b86
commit 80f6df5414
2 changed files with 9 additions and 7 deletions

View file

@ -142,6 +142,13 @@ void RequestBuilder::PushRaw(const T& value) {
index += (sizeof(T) + 3) / 4; // round up to word length
}
template <>
inline void RequestBuilder::Push(ResultCode value) {
// Result codes are actually 64-bit in the IPC buffer, but only the high part is discarded.
Push(value.raw);
Push<u32>(0);
}
template <>
inline void RequestBuilder::Push(u8 value) {
PushRaw(value);
@ -163,11 +170,6 @@ inline void RequestBuilder::Push(bool value) {
Push(static_cast<u8>(value));
}
template <>
inline void RequestBuilder::Push(ResultCode value) {
Push(value.raw);
}
template <typename First, typename... Other>
void RequestBuilder::Push(const First& first_value, const Other&... other_values) {
Push(first_value);