diff options
author | Sam Guyer <sam.guyer@gmail.com> | 2021-04-29 15:50:22 +0300 |
---|---|---|
committer | Sam Guyer <sam.guyer@gmail.com> | 2021-04-29 15:50:22 +0300 |
commit | 65a76c512e51a2c000c60005552ce7cd5347c88b (patch) | |
tree | 5b72b5c33ae03a925d31eb7e852843cd710fe187 | |
parent | 51d2891cff0264dcb17c05939b09a27a47f87447 (diff) |
Fix for issue where program calls setLEDs to change the number of LEDs
-rw-r--r-- | src/platforms/esp/32/clockless_rmt_esp32.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/platforms/esp/32/clockless_rmt_esp32.cpp b/src/platforms/esp/32/clockless_rmt_esp32.cpp index 1b3b7d3f..c7691f69 100644 --- a/src/platforms/esp/32/clockless_rmt_esp32.cpp +++ b/src/platforms/esp/32/clockless_rmt_esp32.cpp @@ -84,10 +84,17 @@ ESP32RMTController::ESP32RMTController(int DATA_PIN, int T1, int T2, int T3, int // the PixelController object until show is called. uint8_t * ESP32RMTController::getPixelBuffer(int size_in_bytes) { + // -- Free the old buffer if it will be too small + if (mPixelData != 0 and mSize < size_in_bytes) { + free(mPixelData); + mPixelData = 0; + } + if (mPixelData == 0) { mSize = size_in_bytes; mPixelData = (uint8_t *) malloc(mSize); } + return mPixelData; } |