Skip to content

Commit 28c305d

Browse files
committed
adjust some WString implementation to make better use of existing overloads
1 parent 6d69614 commit 28c305d

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

SampleProjects/TestSomething/test/good-wstring.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ unittest(string_assignment_and_misc)
3535
s += " ";
3636
s += -3.141;
3737
assertEqual("hi there -10 -3.14", s);
38+
39+
s.reserve(100);
40+
s.reserve(200);
41+
s.reserve(100);
3842
}
3943

4044
unittest(string_comparison)

cpp/arduino/WString.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ class String: public string
5252
public:
5353
~String(void) {}
5454
String(const char *cstr = ""): string(cstr) {}
55-
String(const string &str): string(str.c_str()) {}
56-
String(const String &str): string(str.c_str()) {}
57-
explicit String(char c): string(&c, 1) {}
55+
String(const string &str): string(str) {}
56+
String(const String &str): string(str) {}
57+
explicit String(char c): string(1, c) {}
5858

5959
explicit String(unsigned char val, unsigned char base=10): string(mytoa(val, base)) {}
6060
explicit String(int val, unsigned char base=10): string(mytoas(val, base)) {}
@@ -66,14 +66,14 @@ class String: public string
6666
explicit String(double val, unsigned char decimalPlaces=2): string(dtoas(val, decimalPlaces)) {}
6767

6868
String & operator = (const String &rhs) { assign(rhs); return *this; }
69-
String & operator = (const char *cstr) { assign(cstr); return *this; }
70-
71-
unsigned char reserve(unsigned int size) { return true; } // calling reserve(size) segfaults, no idea why
69+
String & operator = (const string &rhs) { assign(rhs); return *this; }
70+
String & operator = (const char *cstr) { assign(cstr); return *this; }
71+
String & operator = (const char c) { assign(1, c); return *this; }
7272

7373
unsigned char concat(const String &str) { append(str); return 1; }
7474
unsigned char concat(const char *cstr) { append(cstr); return 1; }
75-
unsigned char concat(char c) { append((const char*)&c, 1); return 1; }
76-
unsigned char concat(unsigned char c) { append((const char*)&c, 1); return 1; }
75+
unsigned char concat(char c) { append(1, c); return 1; }
76+
unsigned char concat(unsigned char c) { append(1, c); return 1; }
7777
unsigned char concat(int num) { append(String(num)); return 1; }
7878
unsigned char concat(unsigned int num) { append(String(num)); return 1; }
7979
unsigned char concat(long num) { append(String(num)); return 1; }

0 commit comments

Comments
 (0)