diff --git a/cores/esp8266/core_esp8266_features.h b/cores/esp8266/core_esp8266_features.h index 6b8e22c9b0..e2ea5fe281 100644 --- a/cores/esp8266/core_esp8266_features.h +++ b/cores/esp8266/core_esp8266_features.h @@ -20,7 +20,6 @@ */ - #ifndef CORE_ESP8266_FEATURES_H #define CORE_ESP8266_FEATURES_H @@ -36,28 +35,29 @@ #include // malloc() #include // size_t +#include // int type -namespace arduino +namespace arduino { - extern "C++" - template - T* new0 (size_t n, TConstructorArgs... TconstructorArgs) + extern "C++" + template + T* new0 (size_t n, TConstructorArgs... TconstructorArgs) { // n==0: single allocation, otherwise it is an array size_t offset = n? sizeof(size_t): 0; - size_t arraysize = n? n: 1; - T* ptr = (T*)malloc(offset + (arraysize * sizeof(T))); - if (ptr) - { - if (n) - *(size_t*)(ptr) = n; - for (size_t i = 0; i < arraysize; i++) - new (ptr + offset + i * sizeof(T)) T(TconstructorArgs...); - return ptr + offset; + size_t arraysize = n? n: 1; + T* ptr = (T*)malloc(offset + (arraysize * sizeof(T))); + if (ptr) + { + if (n) + *(size_t*)(ptr) = n; + for (size_t i = 0; i < arraysize; i++) + new (ptr + offset + i * sizeof(T)) T(TconstructorArgs...); + return ptr + offset; } - return nullptr; - } -} + return nullptr; + } +} #define arduino_new(Type, ...) arduino::new0(0, ##__VA_ARGS__) #define arduino_newarray(Type, n, ...) arduino::new0(n, ##__VA_ARGS__) @@ -85,8 +85,8 @@ namespace arduino #define xt_rsil(level) (__extension__({uint32_t state; __asm__ __volatile__("rsil %0," __STRINGIFY(level) : "=a" (state) :: "memory"); state;})) #define xt_wsr_ps(state) __asm__ __volatile__("wsr %0,ps; isync" :: "a" (state) : "memory") -inline uint32_t esp_get_cycle_count() __attribute__((always_inline)); -inline uint32_t esp_get_cycle_count() { +inline uint32_t esp_get_cycle_count() __attribute__((always_inline)); +inline uint32_t esp_get_cycle_count() { uint32_t ccount; __asm__ __volatile__("rsr %0,ccount":"=a"(ccount)); return ccount;