diff --git a/binding-sandbox/sandbox-serial-util.cpp b/binding-sandbox/sandbox-serial-util.cpp index f31163b0..1b128264 100644 --- a/binding-sandbox/sandbox-serial-util.cpp +++ b/binding-sandbox/sandbox-serial-util.cpp @@ -118,6 +118,14 @@ template <> bool mkxp_sandbox::sandbox_serialize(double value, void *&data, wasm return true; } +template <> bool mkxp_sandbox::sandbox_serialize(const char *value, void *&data, wasm_size_t &max_size) { + wasm_size_t size = std::strlen(value) + 1; + RESERVE(size); + std::memcpy(data, value, size); + ADVANCE(size); + return true; +} + template <> bool mkxp_sandbox::sandbox_serialize(const std::string &value, void *&data, wasm_size_t &max_size) { wasm_size_t size = value.length() + 1; RESERVE(size); diff --git a/binding-sandbox/sandbox-serial-util.h b/binding-sandbox/sandbox-serial-util.h index fe018807..54eeb414 100644 --- a/binding-sandbox/sandbox-serial-util.h +++ b/binding-sandbox/sandbox-serial-util.h @@ -40,6 +40,7 @@ namespace mkxp_sandbox { template typename std::enable_if::value && !std::is_enum::value && (std::is_integral::value || std::is_floating_point::value), bool>::type sandbox_serialize(T value, void *&data, wasm_size_t &max_size); template bool sandbox_serialize(const std::vector &value, void *&data, wasm_size_t &max_size); template bool sandbox_serialize(const QuadArray &value, void *&data, wasm_size_t &max_size); + template typename std::enable_if::value, bool>::type sandbox_serialize(const T *value, void *&data, wasm_size_t &max_size); template typename std::enable_if::value, bool>::type sandbox_serialize(const T *value, void *&data, wasm_size_t &max_size); template typename std::enable_if::value && boost::is_detected::value, bool>::type sandbox_serialize(const T &value, void *&data, wasm_size_t &max_size); template typename std::enable_if::value && !boost::is_detected::value, bool>::type sandbox_serialize(const T &value, void *&data, wasm_size_t &max_size); diff --git a/src/display/graphics.cpp b/src/display/graphics.cpp index 936f3306..00cf78a3 100644 --- a/src/display/graphics.cpp +++ b/src/display/graphics.cpp @@ -575,6 +575,7 @@ struct Movie if (baseTicks != (uint64_t)-1) { if (!mkxp_sandbox::sandbox_serialize(baseTicks, data, max_size)) return false; if (!mkxp_sandbox::sandbox_serialize(currentTicks, data, max_size)) return false; + if (!mkxp_sandbox::sandbox_serialize(srcOps->path(), data, max_size)) return false; } return true;