38 void*
do_reallocate(
void* p, fl::size old_bytes, fl::size new_bytes)
override {
40 if (
result && new_bytes > old_bytes) {
42 fl::memset(
static_cast<char*
>(
result) + old_bytes, 0, new_bytes - old_bytes);
48 return this == &other;
67 return this == &other;
74 static DefaultMemoryResource instance;
79 static PSRamMemoryResource instance;
void do_deallocate(void *p, fl::size bytes) override
void * do_allocate(fl::size bytes) override
void * do_reallocate(void *p, fl::size old_bytes, fl::size new_bytes) override
Default: returns nullptr (not supported). Override for realloc-capable resources.
bool do_is_equal(const memory_resource &other) const FL_NOEXCEPT override
bool do_is_equal(const memory_resource &other) const FL_NOEXCEPT override
void * do_allocate(fl::size bytes) override
void do_deallocate(void *p, fl::size bytes) override
virtual void * do_reallocate(void *p, fl::size old_bytes, fl::size new_bytes) FL_NOEXCEPT
Default: returns nullptr (not supported). Override for realloc-capable resources.
Polymorphic memory resource base class (PMR-style).
PMR-style polymorphic memory resource for type-erased allocation.
void * memset(void *s, int c, size_t n) FL_NOEXCEPT
memory_resource * default_memory_resource() FL_NOEXCEPT
Get the default memory resource (wraps fl::Malloc / fl::Free / fl::realloc).
expected< T, E > result
Alias for expected (Rust-style naming)
void PSRamDeallocate(void *ptr)
void * Malloc(fl::size size)
void * realloc(void *ptr, size_t new_size)
memory_resource * psram_memory_resource()
Get the PSRAM memory resource (wraps PSRamAllocate / PSRamDeallocate).
void * PSRamAllocate(fl::size size, bool zero)
Base definition for an LED controller.
#define FASTLED_UNUSED(x)