Skip to content

Commit 50ad8cc

Browse files
committed
rework StreamString::write to use String internal buffer direct.
esp8266#1289
1 parent dd93ea2 commit 50ad8cc

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

cores/esp8266/StreamString.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@
2323
#include <Arduino.h>
2424
#include "StreamString.h"
2525

26-
size_t StreamString::write(const uint8_t *buffer, size_t size) {
27-
if(reserve(length() + size + 1)) {
28-
const uint8_t *s = buffer;
29-
const uint8_t *end = buffer + size;
30-
while(write(*s++) && s < end);
31-
return s - buffer;
26+
size_t StreamString::write(const uint8_t *data, size_t size) {
27+
if(size && data) {
28+
if(reserve(length() + size + 1)) {
29+
memcpy((void *) (buffer + len), (const void *) data, size);
30+
len += size;
31+
*(buffer + len) = 0x00; // add null for string end
32+
return size;
33+
}
3234
}
3335
return 0;
3436
}

0 commit comments

Comments
 (0)