diff --git a/src/emulator/serialization.hpp b/src/emulator/serialization.hpp index 8bf66af7..1483e8b9 100644 --- a/src/emulator/serialization.hpp +++ b/src/emulator/serialization.hpp @@ -122,7 +122,7 @@ namespace utils } else { - static_assert(!is_trivially_copyable, "Key must be trivially copyable or implement serializable!"); + static_assert(is_trivially_copyable, "Key must be trivially copyable or implement serializable!"); std::abort(); } } diff --git a/src/windows-emulator/process_context.hpp b/src/windows-emulator/process_context.hpp index 155a1d7e..390fccab 100644 --- a/src/windows-emulator/process_context.hpp +++ b/src/windows-emulator/process_context.hpp @@ -39,16 +39,20 @@ struct process_context struct atom_entry { - std::u16string name; + std::u16string name{}; uint32_t ref_count = 0; - atom_entry(std::u16string n, const uint32_t count) - : name(std::move(n)), - ref_count(count) + void serialize(utils::buffer_serializer& buffer) const { + buffer.write(this->name); + buffer.write(this->ref_count); } - atom_entry() = default; + void deserialize(utils::buffer_deserializer& buffer) + { + buffer.read(this->name); + buffer.read(this->ref_count); + } }; process_context(x86_64_emulator& emu, memory_manager& memory, utils::clock& clock, callbacks& cb)