Bläddra i källkod

Never return NULL from String c_str()

https://forum.pjrc.com/threads/63842
main
PaulStoffregen 4 år sedan
förälder
incheckning
a1a495a841
2 ändrade filer med 7 tillägg och 1 borttagningar
  1. +2
    -0
      teensy4/WString.cpp
  2. +5
    -1
      teensy4/WString.h

+ 2
- 0
teensy4/WString.cpp Visa fil

@@ -484,6 +484,8 @@ unsigned char String::endsWith( const String &s2 ) const
/* Character Access */
/*********************************************/

const char String::zerotermination = 0;

char String::charAt(unsigned int loc) const
{
return operator[](loc);

+ 5
- 1
teensy4/WString.h Visa fil

@@ -164,7 +164,10 @@ public:
void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;
void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
{getBytes((unsigned char *)buf, bufsize, index);}
const char * c_str() const { return buffer; }
const char * c_str() const {
if (!buffer) return &zerotermination; // https://forum.pjrc.com/threads/63842
return buffer;
}

// search
int indexOf( char ch ) const;
@@ -205,6 +208,7 @@ private:
// for more information http://www.artima.com/cppsource/safebool.html
typedef void (String::*StringIfHelperType)() const;
void StringIfHelper() const {}
static const char zerotermination;
public:
operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; }
};

Laddar…
Avbryt
Spara