From 27aa29bc6dc09bb3ad47abaf105459ba3aa8cd07 Mon Sep 17 00:00:00 2001 From: Clemens Kirchgatterer Date: Tue, 19 Nov 2019 16:04:18 +0100 Subject: [PATCH 1/3] WString explicit converters to reduce Flash size This is a port from the same patch for ESP8266: https://github.com/esp8266/Arduino/pull/6759/files --- cores/esp32/WString.h | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/cores/esp32/WString.h b/cores/esp32/WString.h index 38bd116f4ae..55df6432cd5 100644 --- a/cores/esp32/WString.h +++ b/cores/esp32/WString.h @@ -203,9 +203,21 @@ class String { unsigned char equalsIgnoreCase(const String &s) const; unsigned char equalsConstantTime(const String &s) const; unsigned char startsWith(const String &prefix) const; + unsigned char startsWith(const char *prefix) const { + return this->startsWith(String(prefix)); + } + unsigned char startsWith(const __FlashStringHelper * prefix) const { + return this->startsWith(String(prefix)); + } unsigned char startsWith(const String &prefix, unsigned int offset) const; unsigned char endsWith(const String &suffix) const; - + unsigned char endsWith(const char *suffix) const { + return this->endsWith(String(suffix)); + } + unsigned char endsWith(const __FlashStringHelper *suffix) const { + return this->endsWith(String(suffix)); + } + // character access char charAt(unsigned int index) const; void setCharAt(unsigned int index, char c); @@ -238,7 +250,22 @@ class String { // modification void replace(char find, char replace); - void replace(const String& find, const String& replace); + void replace(const String &find, const String &replace); + void replace(const char *find, const String &replace) { + this->replace(String(find), replace); + } + void replace(const __FlashStringHelper *find, const String &replace) { + this->replace(String(find), replace); + } + void replace(const char *find, const char *replace) { + this->replace(String(find), String(replace)); + } + void replace(const __FlashStringHelper *find, const char *replace) { + this->replace(String(find), String(replace)); + } + void replace(const __FlashStringHelper *find, const __FlashStringHelper *replace) { + this->replace(String(find), String(replace)); + } void remove(unsigned int index); void remove(unsigned int index, unsigned int count); void toLowerCase(void); From 2ae72c62fa827276ad4bcc40ebb5200aab5a6dd8 Mon Sep 17 00:00:00 2001 From: Clemens Kirchgatterer Date: Tue, 19 Nov 2019 16:13:52 +0100 Subject: [PATCH 2/3] Update WString.h --- cores/esp32/WString.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cores/esp32/WString.h b/cores/esp32/WString.h index 55df6432cd5..4a7f5ebc615 100644 --- a/cores/esp32/WString.h +++ b/cores/esp32/WString.h @@ -203,11 +203,11 @@ class String { unsigned char equalsIgnoreCase(const String &s) const; unsigned char equalsConstantTime(const String &s) const; unsigned char startsWith(const String &prefix) const; - unsigned char startsWith(const char *prefix) const { + unsigned char startsWith(const char *prefix) const {  return this->startsWith(String(prefix));  } - unsigned char startsWith(const __FlashStringHelper * prefix) const { - return this->startsWith(String(prefix)); + unsigned char startsWith(const __FlashStringHelper *prefix) const { + return this->startsWith(String(prefix));  } unsigned char startsWith(const String &prefix, unsigned int offset) const; unsigned char endsWith(const String &suffix) const; @@ -217,7 +217,7 @@ class String {  unsigned char endsWith(const __FlashStringHelper *suffix) const {  return this->endsWith(String(suffix));  } - + // character access char charAt(unsigned int index) const; void setCharAt(unsigned int index, char c); @@ -251,11 +251,11 @@ class String { // modification void replace(char find, char replace); void replace(const String &find, const String &replace); - void replace(const char *find, const String &replace) { + void replace(const char *find, const String &replace) {  this->replace(String(find), replace);  }  void replace(const __FlashStringHelper *find, const String &replace) { - this->replace(String(find), replace); +  this->replace(String(find), replace);  }  void replace(const char *find, const char *replace) {  this->replace(String(find), String(replace)); From 4846d9c1862f38b8a7c50e5590dbcf70d21f77f8 Mon Sep 17 00:00:00 2001 From: Clemens Kirchgatterer Date: Tue, 19 Nov 2019 16:24:33 +0100 Subject: [PATCH 3/3] Update WString.h --- cores/esp32/WString.h | 48 +++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/cores/esp32/WString.h b/cores/esp32/WString.h index 4a7f5ebc615..9111d9aac11 100644 --- a/cores/esp32/WString.h +++ b/cores/esp32/WString.h @@ -204,19 +204,19 @@ class String { unsigned char equalsConstantTime(const String &s) const; unsigned char startsWith(const String &prefix) const; unsigned char startsWith(const char *prefix) const { - return this->startsWith(String(prefix)); - } - unsigned char startsWith(const __FlashStringHelper *prefix) const { - return this->startsWith(String(prefix)); - } + return this->startsWith(String(prefix)); + } + unsigned char startsWith(const __FlashStringHelper *prefix) const { + return this->startsWith(String(prefix)); + } unsigned char startsWith(const String &prefix, unsigned int offset) const; unsigned char endsWith(const String &suffix) const; unsigned char endsWith(const char *suffix) const { - return this->endsWith(String(suffix)); - } - unsigned char endsWith(const __FlashStringHelper *suffix) const { - return this->endsWith(String(suffix)); - } + return this->endsWith(String(suffix)); + } + unsigned char endsWith(const __FlashStringHelper * suffix) const { + return this->endsWith(String(suffix)); + } // character access char charAt(unsigned int index) const; @@ -252,20 +252,20 @@ class String { void replace(char find, char replace); void replace(const String &find, const String &replace); void replace(const char *find, const String &replace) { - this->replace(String(find), replace); - } - void replace(const __FlashStringHelper *find, const String &replace) { -  this->replace(String(find), replace); - } - void replace(const char *find, const char *replace) { - this->replace(String(find), String(replace)); - } - void replace(const __FlashStringHelper *find, const char *replace) { - this->replace(String(find), String(replace)); - } - void replace(const __FlashStringHelper *find, const __FlashStringHelper *replace) { - this->replace(String(find), String(replace)); - } + this->replace(String(find), replace); + } + void replace(const __FlashStringHelper *find, const String &replace) { + this->replace(String(find), replace); + } + void replace(const char *find, const char *replace) { + this->replace(String(find), String(replace)); + } + void replace(const __FlashStringHelper *find, const char *replace) { + this->replace(String(find), String(replace)); + } + void replace(const __FlashStringHelper *find, const __FlashStringHelper *replace) { + this->replace(String(find), String(replace)); + } void remove(unsigned int index); void remove(unsigned int index, unsigned int count); void toLowerCase(void);