From b653eb9ce8a83eebbe0c622dea2432f9f08275cb Mon Sep 17 00:00:00 2001 From: Robbert Gurdeep Singh Date: Thu, 14 Apr 2022 16:03:57 +0200 Subject: [PATCH 1/2] Add primitive type to struct when installing --- src/Primitives/arduino.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Primitives/arduino.cpp b/src/Primitives/arduino.cpp index f0f50e5e..2c104539 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; \ From c7dce262a82f4e60d92ccd323f64dc418b85334c Mon Sep 17 00:00:00 2001 From: tolauwae Date: Mon, 10 Feb 2025 07:58:04 +0100 Subject: [PATCH 2/2] Make type a pointer --- src/Primitives/arduino.cpp | 2 +- src/Primitives/emulated.cpp | 1 + src/Primitives/idf.cpp | 1 + src/Primitives/zephyr.cpp | 1 + src/WARDuino.h | 2 +- 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Primitives/arduino.cpp b/src/Primitives/arduino.cpp index 2c104539..f66ed4d8 100644 --- a/src/Primitives/arduino.cpp +++ b/src/Primitives/arduino.cpp @@ -149,7 +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->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 {