diff --git a/memory.cpp b/memory.cpp index 0d00503..8dfda75 100644 --- a/memory.cpp +++ b/memory.cpp @@ -40,30 +40,29 @@ void memory::reset() memset(m, 0x00, size); } -#if IS_POSIX -json_t *memory::serialize() const +JsonDocument memory::serialize() const { - json_t *j = json_object(); + JsonDocument j; - json_object_set(j, "size", json_integer(size)); + j["size"] = size; - json_t *ja = json_array(); + JsonArray ja; for(size_t i=0; im[i] = json_integer_value(json_array_get(ja, i)); + JsonArray ja = j["contents"]; + uint32_t i = 0; + for(auto v: ja) + m->m[i++] = v; return m; } -#endif diff --git a/memory.h b/memory.h index 297d7f7..740fbd8 100644 --- a/memory.h +++ b/memory.h @@ -2,6 +2,7 @@ // Released under MIT license #pragma once +#include #include #include "gen.h" @@ -20,10 +21,9 @@ public: uint32_t get_memory_size() const { return size; } void reset(); -#if IS_POSIX - json_t *serialize() const; - static memory *deserialize(const json_t *const j); -#endif + + JsonDocument serialize() const; + static memory *deserialize(const JsonDocument j); uint16_t read_byte(const uint32_t a) const { return m[a]; } void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; }