diff --git a/src/Primitives/arduino.cpp b/src/Primitives/arduino.cpp index f0f50e5e..f66ed4d8 100644 --- a/src/Primitives/arduino.cpp +++ b/src/Primitives/arduino.cpp @@ -149,6 +149,7 @@ int prim_index = 0; if (prim_index < ALL_PRIMITIVES) { \ PrimitiveEntry *p = &primitives[prim_index++]; \ p->name = #prim_name; \ + p->t = &(prim_name##_type); \ p->f = &(prim_name); \ p->f_reverse = nullptr; \ p->f_serialize_state = nullptr; \ diff --git a/src/Primitives/emulated.cpp b/src/Primitives/emulated.cpp index 28548ae0..4515f213 100644 --- a/src/Primitives/emulated.cpp +++ b/src/Primitives/emulated.cpp @@ -46,6 +46,7 @@ double sensor_emu = 0; if (prim_index < ALL_PRIMITIVES) { \ PrimitiveEntry *p = &primitives[prim_index++]; \ p->name = #prim_name; \ + p->t = &(prim_name##_type); \ p->f = &(prim_name); \ p->f_reverse = nullptr; \ p->f_serialize_state = nullptr; \ diff --git a/src/Primitives/idf.cpp b/src/Primitives/idf.cpp index fb04e7f0..bcba2739 100644 --- a/src/Primitives/idf.cpp +++ b/src/Primitives/idf.cpp @@ -47,6 +47,7 @@ double sensor_emu = 0; if (prim_index < ALL_PRIMITIVES) { \ PrimitiveEntry *p = &primitives[prim_index++]; \ p->name = #prim_name; \ + p->t = &(prim_name##_type); \ p->f = &(prim_name); \ p->f_reverse = nullptr; \ p->f_serialize_state = nullptr; \ diff --git a/src/Primitives/zephyr.cpp b/src/Primitives/zephyr.cpp index 0d722675..4a9303ee 100644 --- a/src/Primitives/zephyr.cpp +++ b/src/Primitives/zephyr.cpp @@ -49,6 +49,7 @@ double sensor_emu = 0; if (prim_index < ALL_PRIMITIVES) { \ PrimitiveEntry *p = &primitives[prim_index++]; \ p->name = #prim_name; \ + p->t = &(prim_name##_type); \ p->f = &(prim_name); \ p->f_reverse = nullptr; \ p->f_serialize_state = nullptr; \ diff --git a/src/WARDuino.h b/src/WARDuino.h index 8d04d160..2c329684 100644 --- a/src/WARDuino.h +++ b/src/WARDuino.h @@ -74,7 +74,7 @@ typedef struct PrimitiveEntry { Primitive f; void (*f_reverse)(Module *m, std::vector); void (*f_serialize_state)(std::vector &); - Type t; + Type *t; } PrimitiveEntry; class WARDuino {