/*
- * $Id: String.cc,v 1.21 2006/05/29 00:15:01 robertc Exp $
+ * $Id: String.cc,v 1.22 2006/09/28 07:33:59 adrian Exp $
*
* DEBUG: section 67 String
* AUTHOR: Duane Wessels
void
String::initBuf(size_t sz)
{
+ PROF_start(StringInitBuf);
buf((char *)memAllocString(sz, &sz));
assert(sz < 65536);
size_ = sz;
+ PROF_stop(StringInitBuf);
}
void
{
assert(this);
+ PROF_start(StringInit);
if (str)
limitInit(str, strlen(str));
else
clean();
+ PROF_stop(StringInit);
}
String::String (char const *aString) : size_(0), len_(0), buf_(NULL)
void
String::limitInit(const char *str, int len)
{
+ PROF_start(StringLimitInit);
assert(this && str);
initBuf(len + 1);
len_ = len;
xmemcpy(buf_, str, len);
buf_[len] = '\0';
+ PROF_stop(StringLimitInit);
}
String::String (String const &old) : size_(0), len_(0), buf_(NULL)
void
String::clean()
{
+ PROF_start(StringClean);
assert(this);
if (buf())
size_ = 0;
buf_ = NULL;
+ PROF_stop(StringClean);
}
String::~String()
void
String::reset(const char *str)
{
+ PROF_start(StringReset);
clean();
init(str);
+ PROF_stop(StringReset);
}
void
assert(this);
assert(str && len >= 0);
+ PROF_start(StringAppend);
if (len_ + len < size_) {
strncat(buf_, str, len);
len_ += len;
absorb(snew);
}
+ PROF_stop(StringAppend);
}
void