String::allocBuffer(size_t sz)
{
PROF_start(StringInitBuf);
- assert (buf_ == NULL);
+ assert (undefined());
char *newBuffer = (char*)memAllocString(sz, &sz);
setBuffer(newBuffer, sz);
PROF_stop(StringInitBuf);
void
String::setBuffer(char *aBuf, size_t aSize)
{
- assert(!buf_);
+ assert(undefined());
assert(aSize < 65536);
buf_ = aBuf;
size_ = aSize;
{
clean(); // TODO: optimize to avoid cleaning the buffer we can use
if (old.size() > 0)
- allocAndFill(old.unsafeBuf(), old.size());
+ allocAndFill(old.rawBuf(), old.size());
return *this;
}
String::String (String const &old) : size_(0), len_(0), buf_(NULL)
{
if (old.size() > 0)
- allocAndFill(old.unsafeBuf(), old.size());
+ allocAndFill(old.rawBuf(), old.size());
#if DEBUGSTRINGS
StringRegistry::Instance().add(this);
PROF_start(StringClean);
assert(this);
- if (unsafeBuf())
+ if (defined())
memFreeString(size_, buf_);
len_ = 0;
void
String::append(String const &old)
{
- append (old.unsafeBuf(), old.len_);
+ append (old.rawBuf(), old.len_);
}
void
void
String::stat(StoreEntry *entry) const
{
- storeAppendPrintf(entry, "%p : %d/%d \"%s\"\n",this,len_, size_, unsafeBuf());
+ storeAppendPrintf(entry, "%p : %d/%d \"%.*s\"\n",this,len_, size_, size(), rawBuf());
}
StringRegistry &
const char *
String::pos(char const *aString) const
{
- return strstr(unsafeBuf(), aString);
+ return strstr(termedBuf(), aString);
}
const char *
String::pos(char const ch) const
{
- return strchr(unsafeBuf(), ch);
+ return strchr(termedBuf(), ch);
}
const char *
String::rpos(char const ch) const
{
- return strrchr(unsafeBuf(), (ch));
+ return strrchr(termedBuf(), (ch));
}
int
if (aString == NULL || aString[0] == '\0')
return 1;
- return strcmp(unsafeBuf(), aString);
+ return strcmp(termedBuf(), aString);
}
int
if (aString == NULL || aString[0] == '\0')
return 1;
- return strncmp(unsafeBuf(), aString, count);
+ return strncmp(termedBuf(), aString, count);
}
int
if (aString.size() == 0)
return 1;
- return strcmp(unsafeBuf(), aString.unsafeBuf());
+ return strcmp(termedBuf(), aString.termedBuf());
}
int
String::caseCmp(char const *aString) const
{
- return strcasecmp(unsafeBuf(), aString);
+ return strcasecmp(termedBuf(), aString);
}
int
String::caseCmp(char const *aString, size_t count) const
{
- return strncasecmp(unsafeBuf(), aString, count);
+ return strncasecmp(termedBuf(), aString, count);
}
void
std::ostream &
operator<<(std::ostream& os, String const &aString)
{
- os << aString.unsafeBuf();
+ os.write(aString.rawBuf(),aString.size());
return os;
}