diff --git a/src/RedirectablePrint.cpp b/src/RedirectablePrint.cpp index a2f048f8e..b558be85b 100644 --- a/src/RedirectablePrint.cpp +++ b/src/RedirectablePrint.cpp @@ -38,20 +38,13 @@ size_t RedirectablePrint::write(uint8_t c) size_t RedirectablePrint::vprintf(const char *format, va_list arg) { va_list copy; + static char printBuf[160]; va_copy(copy, arg); - int len = vsnprintf(printBuf, printBufLen, format, copy); + int len = vsnprintf(printBuf, sizeof(printBuf), format, copy); va_end(copy); - if (len < 0) { - va_end(arg); - return 0; - }; - if (len >= (int)printBufLen) { - delete[] printBuf; - printBufLen *= 2; - printBuf = new char[printBufLen]; - len = vsnprintf(printBuf, printBufLen, format, arg); - } + + if (len < 0) return 0; len = Print::write(printBuf, len); return len; diff --git a/src/RedirectablePrint.h b/src/RedirectablePrint.h index bf797b41f..b2081d046 100644 --- a/src/RedirectablePrint.h +++ b/src/RedirectablePrint.h @@ -12,10 +12,6 @@ class RedirectablePrint : public Print { Print *dest; - /// We dynamically grow this scratch buffer if necessary - char *printBuf = new char[64]; - size_t printBufLen = 64; - /// Used to allow multiple logDebug messages to appear on a single log line bool isContinuationMessage = false;