summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/allocator.h4
-rw-r--r--src/util/string.h10
2 files changed, 9 insertions, 5 deletions
diff --git a/src/util/allocator.h b/src/util/allocator.h
index ff3d3c5..327dfc1 100644
--- a/src/util/allocator.h
+++ b/src/util/allocator.h
@@ -76,9 +76,9 @@ struct LIST {
size = 0;
}
- LIST( U32 _size, const T* data ) {
+ LIST( U32 _size, const T* _data ) {
data = (T*)malloc( sizeof( T ) * _size );
- memcpy( data, data, _size * sizeof( T ) );
+ memcpy( data, _data, _size * sizeof( T ) );
size = _size;
capacity = _size;
}
diff --git a/src/util/string.h b/src/util/string.h
index 04bd9c6..2268a36 100644
--- a/src/util/string.h
+++ b/src/util/string.h
@@ -137,7 +137,7 @@ struct __str : public LIST<CT> {
}
U8 equals( const CT* rhs ) {
- for( U32 i = 0; i < this->size; ++i ) {
+ for( U32 i = 0; i < this->size + 1; ++i ) {
if( !rhs[i] || this->data[i] != rhs[i] )
return 0;
}
@@ -158,13 +158,15 @@ struct __str : public LIST<CT> {
this->data[c] = 0;
this->size = c;
va_end( args2 );
+
+ return *this;
}
__str<CT>& append( const CT* str ) {
U32 len;
for( len = 0; !!str[len]; ++len );
if( this->size + len > this->capacity )
- this->reserve( this->size * 2 );
+ this->reserve( this->size + len + 1 );
memcpy( this->data + this->size, str, len * sizeof(CT) );
this->size += len;
@@ -173,7 +175,7 @@ struct __str : public LIST<CT> {
}
__str<CT>& append( const __str<CT>& str ) {
- U32 len = str.len;
+ U32 len = str.size;
if( this->size + len + 1 >= this->capacity )
this->reserve( this->size + len + 1 );
@@ -212,6 +214,8 @@ struct __str : public LIST<CT> {
if( found )
return i;
}
+
+ return -1;
}
CT* find( const CT* str ) {