mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-07 01:54:26 +01:00
Modifying String from new/delete to malloc()/free(). Also #include'ing WString.h from WProgram.h.
This commit is contained in:
parent
99abaed344
commit
880bc682a9
@ -2,6 +2,7 @@ ARDUINO 0019
|
|||||||
|
|
||||||
[core / libraries]
|
[core / libraries]
|
||||||
|
|
||||||
|
* Added aliases for the analog input pins: A0, A1, etc.
|
||||||
* More accurate delay() function from BenF.
|
* More accurate delay() function from BenF.
|
||||||
* Re-enabling PWM after tone() ends.
|
* Re-enabling PWM after tone() ends.
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "wiring.h"
|
#include "wiring.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
#include "WString.h"
|
||||||
#include "HardwareSerial.h"
|
#include "HardwareSerial.h"
|
||||||
|
|
||||||
uint16_t makeWord(uint16_t w);
|
uint16_t makeWord(uint16_t w);
|
||||||
|
@ -113,7 +113,7 @@ const String & String::operator=( const String &rhs )
|
|||||||
|
|
||||||
if ( rhs._length > _length )
|
if ( rhs._length > _length )
|
||||||
{
|
{
|
||||||
delete [] _buffer;
|
free(_buffer);
|
||||||
getBuffer( rhs._length );
|
getBuffer( rhs._length );
|
||||||
}
|
}
|
||||||
_length = rhs._length;
|
_length = rhs._length;
|
||||||
@ -139,7 +139,7 @@ const String & String::operator+=( const String &other )
|
|||||||
char *temp = _buffer;
|
char *temp = _buffer;
|
||||||
getBuffer( _length );
|
getBuffer( _length );
|
||||||
strcpy( _buffer, temp );
|
strcpy( _buffer, temp );
|
||||||
delete [] temp;
|
free(temp);
|
||||||
}
|
}
|
||||||
strcat( _buffer, other._buffer );
|
strcat( _buffer, other._buffer );
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -36,7 +36,7 @@ class String
|
|||||||
explicit String( const unsigned int, const int base=10 );
|
explicit String( const unsigned int, const int base=10 );
|
||||||
explicit String( const long, const int base=10 );
|
explicit String( const long, const int base=10 );
|
||||||
explicit String( const unsigned long, const int base=10 );
|
explicit String( const unsigned long, const int base=10 );
|
||||||
virtual ~String() { delete [] _buffer; }
|
~String() { free(_buffer); }
|
||||||
|
|
||||||
// operators
|
// operators
|
||||||
const String & operator = ( const String &rhs );
|
const String & operator = ( const String &rhs );
|
||||||
@ -50,7 +50,7 @@ class String
|
|||||||
int operator >=( const String &rhs ) const;
|
int operator >=( const String &rhs ) const;
|
||||||
char operator []( unsigned int index ) const;
|
char operator []( unsigned int index ) const;
|
||||||
char& operator []( unsigned int index );
|
char& operator []( unsigned int index );
|
||||||
// operator const char *() const { return _buffer; }
|
//operator const char *() const { return _buffer; }
|
||||||
|
|
||||||
// general methods
|
// general methods
|
||||||
char charAt( unsigned int index ) const;
|
char charAt( unsigned int index ) const;
|
||||||
@ -84,8 +84,8 @@ class String
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
char *_buffer; // the actual char array
|
char *_buffer; // the actual char array
|
||||||
unsigned int _capacity; // the array length
|
unsigned int _capacity; // the array length minus one (for the '\0')
|
||||||
unsigned int _length; // the String length
|
unsigned int _length; // the String length (not counting the '\0')
|
||||||
|
|
||||||
void getBuffer(unsigned int maxStrLen);
|
void getBuffer(unsigned int maxStrLen);
|
||||||
void doubleBuffer( );
|
void doubleBuffer( );
|
||||||
@ -98,7 +98,7 @@ class String
|
|||||||
inline void String::getBuffer(unsigned int maxStrLen)
|
inline void String::getBuffer(unsigned int maxStrLen)
|
||||||
{
|
{
|
||||||
_capacity = maxStrLen;
|
_capacity = maxStrLen;
|
||||||
_buffer = new char[_capacity + 1];
|
_buffer = (char *) malloc(_capacity + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// double the buffer size
|
// double the buffer size
|
||||||
@ -107,7 +107,7 @@ inline void String::doubleBuffer( )
|
|||||||
char *temp = _buffer;
|
char *temp = _buffer;
|
||||||
getBuffer( ++_capacity * 2 );
|
getBuffer( ++_capacity * 2 );
|
||||||
strcpy( _buffer, temp );
|
strcpy( _buffer, temp );
|
||||||
delete [] temp;
|
free(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline String operator+( String lhs, const String &rhs )
|
inline String operator+( String lhs, const String &rhs )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user