Added unsigned int constructor to ByteArray/String classes

Former-commit-id: 2b52c0dabcd6fbf4ad33b31ef3cb84e668edcd54
This commit is contained in:
Lynix 2013-08-03 20:18:12 +02:00
parent ce028e497a
commit f47ecfe414
5 changed files with 37 additions and 4 deletions

View File

@ -21,6 +21,7 @@ class NAZARA_API NzByteArray : public NzHashable
struct SharedArray;
NzByteArray();
explicit NzByteArray(unsigned int size);
NzByteArray(const void* buffer, unsigned int size);
NzByteArray(const NzByteArray& buffer);
NzByteArray(NzByteArray&& buffer) noexcept;

View File

@ -33,6 +33,7 @@ class NAZARA_API NzString : public NzHashable
NzString();
explicit NzString(char character);
explicit NzString(unsigned int length, char character = '\0');
NzString(const char* string);
NzString(const char* string, unsigned int length);
NzString(const std::string& string);

View File

@ -29,6 +29,19 @@ m_sharedArray(&emptyArray)
{
}
NzByteArray::NzByteArray(unsigned int size)
{
if (size > 0)
{
m_sharedArray = new SharedArray;
m_sharedArray->buffer = new nzUInt8[size];
m_sharedArray->capacity = size;
m_sharedArray->size = size;
}
else
m_sharedArray = &emptyArray;
}
NzByteArray::NzByteArray(const void* buffer, unsigned int size)
{
if (size > 0)

View File

@ -77,9 +77,7 @@ m_sharedString(&emptyString)
NzString::NzString(char character)
{
if (character == '\0')
m_sharedString = &emptyString;
else
if (character != '\0')
{
m_sharedString = new SharedString;
m_sharedString->capacity = 1;
@ -88,6 +86,26 @@ NzString::NzString(char character)
m_sharedString->string[0] = character;
m_sharedString->string[1] = '\0';
}
else
m_sharedString = &emptyString;
}
NzString::NzString(unsigned int length, char character)
{
if (length > 0)
{
m_sharedString = new SharedString;
m_sharedString->capacity = length;
m_sharedString->size = length;
m_sharedString->string = new char[length+1];
if (character != '\0')
std::memset(m_sharedString->string, character, length);
m_sharedString->string[length] = '\0';
}
else
m_sharedString = &emptyString;
}
NzString::NzString(const char* string) :

View File

@ -163,7 +163,7 @@ NzStringStream& NzStringStream::operator<<(unsigned char character)
{
NazaraLock(m_mutex)
m_strings.push_back(NzString(character));
m_strings.push_back(NzString(static_cast<char>(character)));
m_bufferSize++;
return *this;