Skip to content

Commit b341a7c

Browse files
committed
String class: removed deep copy on substring method.
Small code cleanup.
1 parent 16b7b67 commit b341a7c

File tree

3 files changed

+16
-21
lines changed

3 files changed

+16
-21
lines changed

hardware/arduino/avr/cores/arduino/WString.cpp

-5
Original file line numberDiff line numberDiff line change
@@ -527,11 +527,6 @@ int String::lastIndexOf(const String &s2, unsigned int fromIndex) const
527527
return found;
528528
}
529529

530-
String String::substring( unsigned int left ) const
531-
{
532-
return substring(left, len);
533-
}
534-
535530
String String::substring(unsigned int left, unsigned int right) const
536531
{
537532
if (left > right) {

hardware/arduino/avr/cores/arduino/WString.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class String
158158
int lastIndexOf( char ch, unsigned int fromIndex ) const;
159159
int lastIndexOf( const String &str ) const;
160160
int lastIndexOf( const String &str, unsigned int fromIndex ) const;
161-
String substring( unsigned int beginIndex ) const;
161+
String substring( unsigned int beginIndex ) const { return substring(beginIndex, len); };
162162
String substring( unsigned int beginIndex, unsigned int endIndex ) const;
163163

164164
// modification

hardware/arduino/sam/cores/arduino/WString.cpp

+15-15
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,13 @@ unsigned char String::changeBuffer(unsigned int maxStrLen)
150150
/* Copy and Move */
151151
/*********************************************/
152152

153-
String & String::copy(const char *cstr, unsigned int _length)
153+
String & String::copy(const char *cstr, unsigned int length)
154154
{
155-
if (!reserve(_length)) {
155+
if (!reserve(length)) {
156156
invalidate();
157157
return *this;
158158
}
159-
len = _length;
159+
len = length;
160160
strcpy(buffer, cstr);
161161
return *this;
162162
}
@@ -224,11 +224,11 @@ unsigned char String::concat(const String &s)
224224
return concat(s.buffer, s.len);
225225
}
226226

227-
unsigned char String::concat(const char *cstr, unsigned int _length)
227+
unsigned char String::concat(const char *cstr, unsigned int length)
228228
{
229-
unsigned int newlen = len + _length;
229+
unsigned int newlen = len + length;
230230
if (!cstr) return 0;
231-
if (_length == 0) return 1;
231+
if (length == 0) return 1;
232232
if (!reserve(newlen)) return 0;
233233
strcpy(buffer + len, cstr);
234234
len = newlen;
@@ -549,33 +549,33 @@ String String::substring(unsigned int left, unsigned int right) const
549549
/* Modification */
550550
/*********************************************/
551551

552-
void String::replace(char find, char _replace)
552+
void String::replace(char find, char replace)
553553
{
554554
if (!buffer) return;
555555
for (char *p = buffer; *p; p++) {
556-
if (*p == find) *p = _replace;
556+
if (*p == find) *p = replace;
557557
}
558558
}
559559

560-
void String::replace(const String& find, const String& _replace)
560+
void String::replace(const String& find, const String& replace)
561561
{
562562
if (len == 0 || find.len == 0) return;
563-
int diff = _replace.len - find.len;
563+
int diff = replace.len - find.len;
564564
char *readFrom = buffer;
565565
char *foundAt;
566566
if (diff == 0) {
567567
while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
568-
memcpy(foundAt, _replace.buffer, _replace.len);
569-
readFrom = foundAt + _replace.len;
568+
memcpy(foundAt, replace.buffer, replace.len);
569+
readFrom = foundAt + replace.len;
570570
}
571571
} else if (diff < 0) {
572572
char *writeTo = buffer;
573573
while ((foundAt = strstr(readFrom, find.buffer)) != NULL) {
574574
unsigned int n = foundAt - readFrom;
575575
memcpy(writeTo, readFrom, n);
576576
writeTo += n;
577-
memcpy(writeTo, _replace.buffer, _replace.len);
578-
writeTo += _replace.len;
577+
memcpy(writeTo, replace.buffer, replace.len);
578+
writeTo += replace.len;
579579
readFrom = foundAt + find.len;
580580
len += diff;
581581
}
@@ -594,7 +594,7 @@ void String::replace(const String& find, const String& _replace)
594594
memmove(readFrom + diff, readFrom, len - (readFrom - buffer));
595595
len += diff;
596596
buffer[len] = 0;
597-
memcpy(buffer + index, _replace.buffer, _replace.len);
597+
memcpy(buffer + index, replace.buffer, replace.len);
598598
index--;
599599
}
600600
}

0 commit comments

Comments
 (0)