This commit is contained in:
Branimir Karadžić
2017-11-27 23:10:20 -08:00
parent 5585eb69d4
commit 148bdc60fa
5 changed files with 32 additions and 30 deletions

View File

@@ -147,26 +147,20 @@ namespace bx
inline StringT<AllocatorT>::StringT(const StringT<AllocatorT>& _rhs)
: StringView()
{
set(_rhs.m_ptr, _rhs.m_len);
set(_rhs);
}
template<bx::AllocatorI** AllocatorT>
inline StringT<AllocatorT>& StringT<AllocatorT>::operator=(const StringT<AllocatorT>& _rhs)
{
set(_rhs.m_ptr, _rhs.m_len);
set(_rhs);
return *this;
}
template<bx::AllocatorI** AllocatorT>
inline StringT<AllocatorT>::StringT(const char* _ptr, int32_t _len)
{
set(_ptr, _len);
}
template<bx::AllocatorI** AllocatorT>
inline StringT<AllocatorT>::StringT(const StringView& _rhs)
{
set(_rhs.getPtr(), _rhs.getLength() );
set(_rhs);
}
template<bx::AllocatorI** AllocatorT>
@@ -176,22 +170,22 @@ namespace bx
}
template<bx::AllocatorI** AllocatorT>
inline void StringT<AllocatorT>::set(const char* _ptr, int32_t _len)
inline void StringT<AllocatorT>::set(const StringView& _str)
{
clear();
append(_ptr, _len);
append(_str);
}
template<bx::AllocatorI** AllocatorT>
inline void StringT<AllocatorT>::append(const char* _ptr, int32_t _len)
inline void StringT<AllocatorT>::append(const StringView& _str)
{
if (0 != _len)
if (0 != _str.getLength() )
{
int32_t old = m_len;
int32_t len = m_len + strLen(_ptr, _len);
int32_t len = m_len + strLen(_str);
char* ptr = (char*)BX_REALLOC(*AllocatorT, 0 != m_len ? const_cast<char*>(m_ptr) : NULL, len+1);
m_len = len;
strCopy(ptr + old, len-old+1, _ptr, _len);
strCopy(ptr + old, len-old+1, _str);
*const_cast<char**>(&m_ptr) = ptr;
}

View File

@@ -84,9 +84,6 @@ namespace bx
///
StringT<AllocatorT>& operator=(const StringT<AllocatorT>& _rhs);
///
StringT(const char* _ptr, int32_t _len = INT32_MAX);
///
StringT(const StringView& _rhs);
@@ -94,10 +91,10 @@ namespace bx
~StringT();
///
void set(const char* _ptr, int32_t _len = INT32_MAX);
void set(const StringView& _str);
///
void append(const char* _ptr, int32_t _len = INT32_MAX);
void append(const StringView& _str);
///
void clear();
@@ -163,9 +160,6 @@ namespace bx
///
void toUpper(char* _inOutStr, int32_t _max = INT32_MAX);
///
bool toBool(const char* _str);
/// String compare.
int32_t strCmp(const StringView& _lhs, const StringView& _rhs, int32_t _max = INT32_MAX);
@@ -267,6 +261,9 @@ namespace bx
/// Convert size in bytes to human readable string kibi units.
int32_t prettify(char* _out, int32_t _count, uint64_t _value, Units::Enum _units = Units::Kibi);
///
int32_t toString(char* _out, int32_t _max, bool _value);
///
int32_t toString(char* _out, int32_t _max, double _value);
@@ -282,6 +279,9 @@ namespace bx
///
int32_t toString(char* _out, int32_t _max, uint64_t _value, uint32_t _base = 10);
///
bool fromString(bool* _out, const StringView& _str);
///
bool fromString(float* _out, const StringView& _str);