Fix build issue for systems where double==long double

This commit is contained in:
Patrick Pelissier committed 2020-03-02 14:23:59 +01:00
1 parent a5fbd8405c
commit 653a0d9734
1 file changed
+8 -18
+8 -18
View File
@@ -87,22 +87,17 @@ m_serial_bin_write_float(m_serial_write_t serial, const long double data, const
size_t n; size_t n;
FILE *f = (FILE *)serial->data[0].p; FILE *f = (FILE *)serial->data[0].p;
switch (size_of_type) { if (size_of_type == sizeof f1) {
case sizeof f1:
f1 = data; f1 = data;
n = fwrite (M_ASSIGN_CAST(const void*, &f1), sizeof f1, 1, f); n = fwrite (M_ASSIGN_CAST(const void*, &f1), sizeof f1, 1, f);
break; } else if (size_of_type == sizeof f2) {
case sizeof f2:
f2 = data; f2 = data;
n = fwrite (M_ASSIGN_CAST(const void*, &f2), sizeof f2, 1, f); n = fwrite (M_ASSIGN_CAST(const void*, &f2), sizeof f2, 1, f);
break; } else if (size_of_type == sizeof f3) {
case sizeof f3:
f3 = data; f3 = data;
n = fwrite (M_ASSIGN_CAST(const void*, &f3), sizeof f3, 1, f); n = fwrite (M_ASSIGN_CAST(const void*, &f3), sizeof f3, 1, f);
break; } else {
default:
M_ASSERT_INIT(false, "a float of suitable size"); M_ASSERT_INIT(false, "a float of suitable size");
break;
} }
return n == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL; return n == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL;
} }
@@ -323,22 +318,17 @@ m_serial_bin_read_float(m_serial_read_t serial, long double *r, const size_t siz
long double f3; long double f3;
size_t n; size_t n;
FILE *f = (FILE *)serial->data[0].p; FILE *f = (FILE *)serial->data[0].p;
switch (size_of_type) { if (size_of_type == sizeof f1) {
case sizeof f1:
n = fread (M_ASSIGN_CAST(void*, &f1), sizeof f1, 1, f); n = fread (M_ASSIGN_CAST(void*, &f1), sizeof f1, 1, f);
*r = f1; *r = f1;
break; } else if (size_of_type == sizeof f2) {
case sizeof f2:
n = fread (M_ASSIGN_CAST(void*, &f2), sizeof f2, 1, f); n = fread (M_ASSIGN_CAST(void*, &f2), sizeof f2, 1, f);
*r = f2; *r = f2;
break; } else if (size_of_type == sizeof f3) {
case sizeof f3:
n = fread (M_ASSIGN_CAST(void*, &f3), sizeof f3, 1, f); n = fread (M_ASSIGN_CAST(void*, &f3), sizeof f3, 1, f);
*r = f3; *r = f3;
break; } else {
default:
M_ASSERT_INIT(false, "a float of suitable size"); M_ASSERT_INIT(false, "a float of suitable size");
break;
} }
return n == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL; return n == 1 ? M_SERIAL_OK_DONE : M_SERIAL_FAIL;
} }