Exemplo n.º 1
0
festring& festring::Append(char Char)
{
  if(OwnsData && !REFS(Data) && Size < Reserved)
    Data[Size++] = Char;
  else
    SlowAppend(&Char, 1);

  return *this;
}
Exemplo n.º 2
0
festring& festring::Append(const char* CStr, sizetype N)
{
    sizetype OldSize = Size;
    sizetype NewSize = OldSize + N;
    char* OldPtr = Data;

    if(OwnsData && OldPtr && !REFS(OldPtr) && NewSize <= Reserved)
    {
        memcpy(OldPtr + OldSize, CStr, N);
        Size = NewSize;
    }
    else
        SlowAppend(CStr, N);

    return *this;
}
Exemplo n.º 3
0
festring& festring::Append(cchar* CStr, sizetype N)
{
  if(!N)
    return *this;

  sizetype OldSize = Size;
  sizetype NewSize = OldSize + N;

  if(OwnsData && !REFS(Data) && NewSize <= Reserved)
  {
    memcpy(Data + OldSize, CStr, N);
    Size = NewSize;
  }
  else
    SlowAppend(CStr, N);

  return *this;
}
Exemplo n.º 4
0
festring& festring::Append(cfestring& Str)
{
  if(!Str.Size)
    return *this;

  sizetype N = Str.Size;
  sizetype OldSize = Size;
  sizetype NewSize = OldSize + N;
  char* OldPtr = Data;
  char* OtherPtr = Str.Data;

  if(OwnsData && !REFS(Data) && NewSize <= Reserved)
  {
    memcpy(Data + OldSize, Str.Data, N);
    Size = NewSize;
  }
  else
    SlowAppend(Str.Data, N);

  return *this;
}
Exemplo n.º 5
0
void festring::SlowAppend(char Char)
{
  SlowAppend(&Char, 1);
}