added String constructor which takes (and clones) a ConstString
svn-id: r4918
This commit is contained in:
parent
f277bb9fcd
commit
22e2df20c2
2 changed files with 17 additions and 1 deletions
|
@ -37,6 +37,20 @@ String::String(const char *str)
|
|||
}
|
||||
}
|
||||
|
||||
String::String(const ConstString &str)
|
||||
{
|
||||
printf("String::String(const ConstString &str)\n");
|
||||
_refCount = new int(1);
|
||||
if (str._str) {
|
||||
_capacity = _len = strlen(str._str);
|
||||
_str = (char *)calloc(1, _capacity+1);
|
||||
memcpy(_str, str._str, _len+1);
|
||||
} else {
|
||||
_capacity = _len = 0;
|
||||
_str = 0;
|
||||
}
|
||||
}
|
||||
|
||||
String::String(const String &str)
|
||||
{
|
||||
++(*str._refCount);
|
||||
|
|
|
@ -39,13 +39,14 @@ namespace ScummVM {
|
|||
*/
|
||||
|
||||
class ConstString {
|
||||
friend class String;
|
||||
protected:
|
||||
char *_str;
|
||||
int _len;
|
||||
|
||||
public:
|
||||
ConstString() : _str(0), _len(0) {}
|
||||
ConstString(const char *str) : _str((char*)str) { _len = str ? strlen(str) : 0;}
|
||||
ConstString(const char *str) : _str((char*)str) { _len = str ? strlen(str) : 0; }
|
||||
virtual ~ConstString() {}
|
||||
|
||||
bool operator ==(const ConstString& x) const;
|
||||
|
@ -71,6 +72,7 @@ protected:
|
|||
public:
|
||||
String() : _capacity(0) { _refCount = new int(1); }
|
||||
String(const char *str);
|
||||
String(const ConstString &str);
|
||||
String(const String &str);
|
||||
virtual ~String();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue