1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

rework StreamString::write to use String internal buffer direct.

#1289
This commit is contained in:
Markus Sattler 2015-12-23 13:40:16 +01:00
parent dd93ea26ee
commit 50ad8ccdf5

View File

@ -23,12 +23,14 @@
#include <Arduino.h> #include <Arduino.h>
#include "StreamString.h" #include "StreamString.h"
size_t StreamString::write(const uint8_t *buffer, size_t size) { size_t StreamString::write(const uint8_t *data, size_t size) {
if(reserve(length() + size + 1)) { if(size && data) {
const uint8_t *s = buffer; if(reserve(length() + size + 1)) {
const uint8_t *end = buffer + size; memcpy((void *) (buffer + len), (const void *) data, size);
while(write(*s++) && s < end); len += size;
return s - buffer; *(buffer + len) = 0x00; // add null for string end
return size;
}
} }
return 0; return 0;
} }