Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 93d5b8c

Browse filesBrowse files
committed
Fix String::replace()
Fixes: espressif#4920
1 parent f815a7c commit 93d5b8c
Copy full SHA for 93d5b8c

File tree

Expand file treeCollapse file tree

1 file changed

+4
-2
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+4
-2
lines changed

‎cores/esp32/WString.cpp

Copy file name to clipboardExpand all lines: cores/esp32/WString.cpp
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -744,16 +744,18 @@ void String::replace(const String& find, const String& replace) {
744744
}
745745
} else if(diff < 0) {
746746
char *writeTo = wbuffer();
747+
unsigned int l = len();
747748
while((foundAt = strstr(readFrom, find.buffer())) != NULL) {
748749
unsigned int n = foundAt - readFrom;
749750
memmove(writeTo, readFrom, n);
750751
writeTo += n;
751752
memmove(writeTo, replace.buffer(), replace.len());
752753
writeTo += replace.len();
753754
readFrom = foundAt + find.len();
754-
setLen(len() + diff);
755+
l += diff;
755756
}
756757
memmove(writeTo, readFrom, strlen(readFrom)+1);
758+
setLen(l);
757759
} else {
758760
unsigned int size = len(); // compute size needed for result
759761
while((foundAt = strstr(readFrom, find.buffer())) != NULL) {
@@ -768,7 +770,7 @@ void String::replace(const String& find, const String& replace) {
768770
while(index >= 0 && (index = lastIndexOf(find, index)) >= 0) {
769771
readFrom = wbuffer() + index + find.len();
770772
memmove(readFrom + diff, readFrom, len() - (readFrom - buffer()));
771-
int newLen = len() + diff;
773+
int newLen = len() + diff;
772774
memmove(wbuffer() + index, replace.buffer(), replace.len());
773775
setLen(newLen);
774776
wbuffer()[newLen] = 0;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.