7#if defined(ESP32) || defined(ESP_PLATFORM)
11# include "esp_heap_caps.h"
16#define LOGE_HELIX(...) assert(false)
41 T* ref =
new (addr) T();
48 if (obj ==
nullptr)
return;
59 for (
int j = 0; j >
len; j++)
new (&(addrT[j])) T();
66 if (obj ==
nullptr)
return;
67 for (
int j = 0; j <
len; j++) {
76 if (result ==
nullptr) {
84 virtual void free(
void* memory) {
85 if (memory !=
nullptr)
::free(memory);
102 void* do_allocate(
size_t size) {
103 void* result =
nullptr;
105#if defined(ESP32) || defined(ESP_PLATFORM)
107 result = ps_malloc(
size);
109 result = heap_caps_malloc(
size, MALLOC_CAP_SPIRAM);
113 if (result ==
nullptr) {
123#if (defined(ESP32) || defined(ESP_PLATFORM)) && defined(ARDUINO)
134 void* do_allocate(
size_t size) {
136 void* result =
nullptr;
137 result = ps_calloc(1,
size);
138 if (result ==
nullptr) {
#define LOGE_HELIX(...)
Definition Allocator.h:16
#define ALLOCATOR
Definition ConfigHelix.h:35
Memory allocateator which uses ps_malloc (on the ESP32) and if this fails it resorts to malloc.
Definition Allocator.h:101
Memory allocateator which uses malloc.
Definition Allocator.h:34
virtual void * do_allocate(size_t size)
Definition Allocator.h:89
void remove(T *obj)
deletes an object
Definition Allocator.h:47
void removeArray(T *obj, int len)
Definition Allocator.h:65
virtual void free(void *memory)
frees memory
Definition Allocator.h:84
virtual void * allocate(size_t size)
Allocates memory.
Definition Allocator.h:74
T * createArray(int len)
Definition Allocator.h:55
T * create()
Definition Allocator.h:38
size_t size
Definition drm_bridge.h:1299
size_t len
Definition initial.c:23
Definition Allocator.h:19
#define malloc(s)
Definition quickjs.c:2290
#define free(p)
Definition quickjs.c:2291
XE_LIB void * calloc(unsigned long long num, unsigned long long size)
Definition _heap.cpp:6476