Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion rpcs3/Emu/Cell/lv2/sys_prx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ std::function<void(void*)> lv2_prx::load(utils::serial& ar)
const u32 state{ar};

usz seg_count = 0;
ar.deserialize_vle(seg_count);
ar.deserialize_vle<9>(seg_count);

shared_ptr<lv2_prx> prx;

Expand Down
8 changes: 4 additions & 4 deletions rpcs3/util/serialization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,12 +206,12 @@ namespace utils
return true;
}

template <typename T> requires Integral<T>
template <uint MaxBits = 0, typename T> requires Integral<T> && (MaxBits <= sizeof(T) * 8)
bool deserialize_vle(T& value)
{
using unsigned_type = std::make_unsigned_t<T>;
unsigned_type result{};
constexpr u32 bit_width = sizeof(T) * 8;
constexpr u32 bit_width = MaxBits ? sizeof(T) * 8 : MaxBits;
Comment thread
elad335 marked this conversation as resolved.
value = {};

for (u32 i = 0;; i += 7)
Expand Down Expand Up @@ -306,7 +306,7 @@ namespace utils
}

usz size = 0;
if (!deserialize_vle(size))
if (!deserialize_vle<28>(size))
{
return false;
}
Expand Down Expand Up @@ -423,7 +423,7 @@ namespace utils
}

usz size = 0;
if (!deserialize_vle(size))
if (!deserialize_vle<28>(size))
{
return false;
}
Expand Down
Loading