From 976095f3ef4efbadd2adf759b3a47caafbd98328 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 9 May 2016 16:07:38 +0200 Subject: [PATCH] Added bytes alignment calculation on ESP8266 --- src/LibTeleinfo.cpp | 6 +++--- src/LibTeleinfo.h | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/LibTeleinfo.cpp b/src/LibTeleinfo.cpp index e366ae3..0ec99fa 100644 --- a/src/LibTeleinfo.cpp +++ b/src/LibTeleinfo.cpp @@ -249,10 +249,10 @@ ValueList * TInfo::valueAdd(char * name, char * value, uint8_t checksum, uint8_t // + Value + '\0' size_t size ; #ifdef ESP8266 - lgname = xPortWantedSizeAlign(lgname+1); // Align name buffer - lgvalue = xPortWantedSizeAlign(lgvalue+1); // Align value buffer + lgname = ESP8266_allocAlign(lgname+1); // Align name buffer + lgvalue = ESP8266_allocAlign(lgvalue+1); // Align value buffer // Align the whole structure - size = xPortWantedSizeAlign( sizeof(ValueList) + lgname + lgvalue ) ; + size = ESP8266_allocAlign( sizeof(ValueList) + lgname + lgvalue ) ; #else size = sizeof(ValueList) + lgname + 1 + lgvalue + 1 ; #endif diff --git a/src/LibTeleinfo.h b/src/LibTeleinfo.h index 5263ac0..2085561 100644 --- a/src/LibTeleinfo.h +++ b/src/LibTeleinfo.h @@ -38,10 +38,10 @@ // Using ESP8266 ? #ifdef ESP8266 -//#include "stdlib_noniso.h" #include #endif + // Define this if you want library to be verbose //#define TI_DEBUG @@ -67,6 +67,12 @@ #define TI_Debugflush #endif +#ifdef ESP8266 + // For 4 bytes Aligment boundaries + #define ESP8266_allocAlign(size) ((size + 3) & ~((size_t) 3)) +#endif + + #pragma pack(push) // push current alignment to stack #pragma pack(1) // set alignment to 1 byte boundary