From ada1b9861f01ea8b1bbe984fa2b5b8ccd76d7860 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Fri, 10 May 2019 11:14:21 +0200 Subject: [PATCH] Add size_of_type field for reading too --- m-core.h | 6 +++--- m-serial-json.h | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/m-core.h b/m-core.h index c61bb18b..0074ce90 100644 --- a/m-core.h +++ b/m-core.h @@ -2595,8 +2595,8 @@ struct string_s; // Interface exported by the serial read object. typedef struct m_serial_read_interface_s { m_serial_return_code_t (*read_boolean)(m_serial_read_t,bool *); - m_serial_return_code_t (*read_integer)(m_serial_read_t, long long *); - m_serial_return_code_t (*read_float)(m_serial_read_t, long double *); + m_serial_return_code_t (*read_integer)(m_serial_read_t, long long *, const size_t size_of_type); + m_serial_return_code_t (*read_float)(m_serial_read_t, long double *, const size_t size_of_type); m_serial_return_code_t (*read_string)(m_serial_read_t, struct string_s *); m_serial_return_code_t (*read_array_start)(m_serial_read_t, size_t *); m_serial_return_code_t (*read_array_next)(m_serial_read_t); // Return M_SERIAL_OK_DONE when array is finished parsing. @@ -2689,7 +2689,7 @@ typedef struct m_serial_write_interface_s { { \ promoted_type i; \ m_serial_return_code_t r; \ - r = serial->interface->func(serial, &i); \ + r = serial->interface->func(serial, &i, sizeof (type)); \ *ptr = i; \ return r; \ } diff --git a/m-serial-json.h b/m-serial-json.h index 15d3f2aa..4e4b224c 100644 --- a/m-serial-json.h +++ b/m-serial-json.h @@ -165,13 +165,15 @@ m_serial_json_read_boolean(m_serial_read_t serial, bool *b){ } static inline m_serial_return_code_t -m_serial_json_read_integer(m_serial_read_t serial, long long *i){ +m_serial_json_read_integer(m_serial_read_t serial, long long *i, const size_t size_of_type){ + (void) size_of_type; // Ignored FILE *f = (FILE*) serial->data[0]; return fscanf(f, " %lld", i) == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL; } static inline m_serial_return_code_t -m_serial_json_read_float(m_serial_read_t serial, long double *r){ +m_serial_json_read_float(m_serial_read_t serial, long double *r, const size_t size_of_type){ + (void) size_of_type; // Ignored FILE *f = (FILE*) serial->data[0]; return fscanf(f, " %Lf", r) == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL; }