From 4701d5919b0de067871b2f81c557058347a75584 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sat, 11 May 2019 11:26:44 +0200 Subject: [PATCH] Fix serial import/export for variant --- m-serial-json.h | 2 +- m-variant.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/m-serial-json.h b/m-serial-json.h index b6653bbe..502fab60 100644 --- a/m-serial-json.h +++ b/m-serial-json.h @@ -378,7 +378,7 @@ m_serial_json_read_variant_end(m_serial_read_t serial) FILE *f = (FILE*) serial->data[0]; int final = -1; fscanf(f, " }%n", &final); - return final > 0 ? M_SERIAL_OK_CONTINUE : M_SERIAL_FAIL; + return final > 0 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL; } static const m_serial_read_interface_t m_serial_json_read_interface = { diff --git a/m-variant.h b/m-variant.h index 78076a2c..81cedd66 100644 --- a/m-variant.h +++ b/m-variant.h @@ -551,7 +551,7 @@ M_MAP2(VARIANTI_DEFINE_IN_SERIAL_FUNC , name, __VA_ARGS__) \ default: assert(false); break; \ } \ - if (ret != M_SERIAL_OK_DONE) \ + if (ret == M_SERIAL_OK_DONE) \ ret = f->interface->read_variant_end(f); \ return ret; \ } @@ -584,6 +584,8 @@ M_IF_METHOD2_ALL(PARSE_STR, INIT, __VA_ARGS__)(PARSE_STR(M_C(name, _parse_str)),), \ M_IF_METHOD2_ALL(IN_STR, INIT, __VA_ARGS__)(IN_STR(M_C(name, _in_str)),), \ M_IF_METHOD_ALL(OUT_STR, __VA_ARGS__)(OUT_STR(M_C(name, _out_str)),), \ + M_IF_METHOD2_ALL(IN_SERIAL, INIT, __VA_ARGS__)(IN_SERIAL(M_C(name, _in_serial)),), \ + M_IF_METHOD_ALL(OUT_SERIAL, __VA_ARGS__)(OUT_SERIAL(M_C(name, _out_serial)),), \ M_IF_METHOD_ALL(INIT_MOVE, __VA_ARGS__)(INIT_MOVE(M_C(name, _init_move)),), \ M_IF_METHOD_ALL(INIT_MOVE, __VA_ARGS__)(MOVE(M_C(name, _move)),), \ M_IF_METHOD_ALL(SWAP, __VA_ARGS__)(SWAP(M_C(name, _swap)),), \