use local buffer for printf if size is equal or less than 64
This commit is contained in:
parent
3ecb32c4ba
commit
01961ef5c6
@ -46,14 +46,17 @@ size_t Print::write(const uint8_t *buffer, size_t size)
|
||||
|
||||
size_t Print::printf(const char *format, ...)
|
||||
{
|
||||
char * temp;
|
||||
char loc_buf[64];
|
||||
char * temp = loc_buf;
|
||||
va_list arg;
|
||||
va_start(arg, format);
|
||||
size_t len = vsnprintf(NULL, 0, format, arg);
|
||||
if(len > 64){
|
||||
temp = new char[len+1];
|
||||
if(temp == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
len = vsnprintf(temp, len+1, format, arg);
|
||||
write((uint8_t*)temp, len);
|
||||
va_end(arg);
|
||||
|
Loading…
Reference in New Issue
Block a user