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

Sign up
Appearance settings

Commit 21947eb

Browse files
Make String::concat() faster for some types. (#5307)
* Make String::concat() faster for some types. This patch removes the unneeded call to `strlen()` when concatenating some types to a `String`. Additionally it fixes some whitespace for consistency. * Update WString.cpp
1 parent c7bdb23 commit 21947eb

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

‎cores/esp32/WString.cpp‎

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,7 @@ String::String(StringSumHelper &&rval) {
5959

6060
String::String(char c) {
6161
init();
62-
char buf[2];
63-
buf[0] = c;
64-
buf[1] = 0;
62+
char buf[] = { c, '0円' };
6563
*this = buf;
6664
}
6765

@@ -290,10 +288,11 @@ String & String::operator =(const char *cstr) {
290288
return *this;
291289
}
292290

293-
String & String::operator = (const __FlashStringHelper *pstr)
294-
{
295-
if (pstr) copy(pstr, strlen_P((PGM_P)pstr));
296-
else invalidate();
291+
String & String::operator =(const __FlashStringHelper *pstr) {
292+
if(pstr)
293+
copy(pstr, strlen_P((PGM_P)pstr));
294+
else
295+
invalidate();
297296

298297
return *this;
299298
}
@@ -347,22 +346,18 @@ unsigned char String::concat(const char *cstr) {
347346
}
348347

349348
unsigned char String::concat(char c) {
350-
char buf[2];
351-
buf[0] = c;
352-
buf[1] = 0;
349+
char buf[] = { c, '0円' };
353350
return concat(buf, 1);
354351
}
355352

356353
unsigned char String::concat(unsigned char num) {
357354
char buf[1 + 3 * sizeof(unsigned char)];
358-
sprintf(buf, "%d", num);
359-
return concat(buf, strlen(buf));
355+
return concat(buf, sprintf(buf, "%d", num));
360356
}
361357

362358
unsigned char String::concat(int num) {
363359
char buf[2 + 3 * sizeof(int)];
364-
sprintf(buf, "%d", num);
365-
return concat(buf, strlen(buf));
360+
return concat(buf, sprintf(buf, "%d", num));
366361
}
367362

368363
unsigned char String::concat(unsigned int num) {
@@ -373,8 +368,7 @@ unsigned char String::concat(unsigned int num) {
373368

374369
unsigned char String::concat(long num) {
375370
char buf[2 + 3 * sizeof(long)];
376-
sprintf(buf, "%ld", num);
377-
return concat(buf, strlen(buf));
371+
return concat(buf, sprintf(buf, "%ld", num));
378372
}
379373

380374
unsigned char String::concat(unsigned long num) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /