REFACTOR: Error debugging for most functions
This commit is contained in:
+1
-1
@@ -53,7 +53,7 @@ max_size(const Vec8_t* ptr);
|
|||||||
void delete (const Vec8_t* vec);
|
void delete (const Vec8_t* vec);
|
||||||
|
|
||||||
Vec8_t
|
Vec8_t
|
||||||
clear(Vec8_t* vec);
|
clear(const Vec8_t* vec);
|
||||||
|
|
||||||
char
|
char
|
||||||
at(const Vec8_t* vec, int idx);
|
at(const Vec8_t* vec, int idx);
|
||||||
|
|||||||
+20
-17
@@ -48,6 +48,7 @@ push_back(Vec8_t* vec, const char val)
|
|||||||
if (!vec->arr)
|
if (!vec->arr)
|
||||||
{
|
{
|
||||||
LOGERROR(ERR_BUF_NULL);
|
LOGERROR(ERR_BUF_NULL);
|
||||||
|
LOG("If you think this is wrong, reserve memory first");
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
if (vec->size + 1 > vec->max_size)
|
if (vec->size + 1 > vec->max_size)
|
||||||
@@ -149,13 +150,12 @@ shrink_to_fit(Vec8_t* ptr)
|
|||||||
int
|
int
|
||||||
swap(Vec8_t* ptr, Vec8_t* ptr_other)
|
swap(Vec8_t* ptr, Vec8_t* ptr_other)
|
||||||
{
|
{
|
||||||
Vec8_t empty = create(nullptr, 0);
|
Vec8_t empty = create(nullptr, -1);
|
||||||
if (ptr == nullptr || ptr_other == nullptr) return 0;
|
if (ptr == nullptr || ptr_other == nullptr || ptr->arr == nullptr ||
|
||||||
if (ptr->arr == nullptr || ptr_other->arr == nullptr) return 0;
|
ptr_other->arr == nullptr)
|
||||||
|
return 0;
|
||||||
empty.arr = ptr->arr;
|
empty.arr = ptr->arr;
|
||||||
ptr->arr = nullptr;
|
|
||||||
ptr->arr = ptr_other->arr;
|
ptr->arr = ptr_other->arr;
|
||||||
ptr_other->arr = nullptr;
|
|
||||||
ptr_other->arr = empty.arr;
|
ptr_other->arr = empty.arr;
|
||||||
if (ptr != nullptr && ptr_other != nullptr)
|
if (ptr != nullptr && ptr_other != nullptr)
|
||||||
{
|
{
|
||||||
@@ -202,18 +202,23 @@ delete(const Vec8_t* vec)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Vec8_t
|
Vec8_t
|
||||||
clear(Vec8_t* vec)
|
clear(const Vec8_t* vec)
|
||||||
{
|
{
|
||||||
if (vec != nullptr && vec->size > 0)
|
Vec8_t dst = create(nullptr, -1);
|
||||||
|
if (!vec && !vec->arr)
|
||||||
|
{
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
dst.arr = vec->arr;
|
||||||
|
if (vec->size > 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < vec->size; i++)
|
for (int i = 0; i < vec->size; i++)
|
||||||
{
|
{
|
||||||
if (!vec->arr) continue;
|
dst.arr[i] = 0;
|
||||||
vec->arr[i] = 0;
|
|
||||||
}
|
}
|
||||||
vec->size = 0;
|
dst.size = 0;
|
||||||
}
|
}
|
||||||
return *vec;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
char
|
char
|
||||||
@@ -221,11 +226,13 @@ at(const Vec8_t* vec, const int idx)
|
|||||||
{
|
{
|
||||||
if (vec == nullptr)
|
if (vec == nullptr)
|
||||||
{
|
{
|
||||||
return -2;
|
LOGERROR(ERR_VECTOR_NULL);
|
||||||
|
return ERR_VECTOR_NULL;
|
||||||
}
|
}
|
||||||
if (vec->arr == nullptr)
|
if (vec->arr == nullptr)
|
||||||
{
|
{
|
||||||
return -3;
|
LOGERROR(ERR_BUF_NULL);
|
||||||
|
return ERR_BUF_NULL;
|
||||||
}
|
}
|
||||||
if (vec->size <= idx)
|
if (vec->size <= idx)
|
||||||
{
|
{
|
||||||
@@ -235,12 +242,8 @@ at(const Vec8_t* vec, const int idx)
|
|||||||
exit(-4);
|
exit(-4);
|
||||||
// return -4;
|
// return -4;
|
||||||
}
|
}
|
||||||
if (vec != nullptr && vec->arr != nullptr && vec->size > idx)
|
|
||||||
{
|
|
||||||
return vec->arr[idx];
|
return vec->arr[idx];
|
||||||
}
|
}
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
__attribute__((overloadable)) Vec8_t*
|
__attribute__((overloadable)) Vec8_t*
|
||||||
erase(Vec8_t* vec, const size_t iter)
|
erase(Vec8_t* vec, const size_t iter)
|
||||||
|
|||||||
+23
-13
@@ -22,21 +22,31 @@
|
|||||||
int
|
int
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
char arr[] = { 'a' };
|
char arr[] = { '1', '2', '3', '4' };
|
||||||
// Vec8_t v1 = create(arr, find_len(arr));
|
Vec8_t v1 = create(arr, find_len(arr));
|
||||||
// Vec8_t v1 = create((char[]) { 'a', 'b', 'c', 'd' }, 4);
|
Vec8_t v2 = create((char[]) { 'a', 'b', 'c', 'd' }, 4);
|
||||||
Vec8_t v1 = create(nullptr, 0);
|
|
||||||
|
print_vec(&v1);
|
||||||
|
print_vec(&v2);
|
||||||
|
|
||||||
|
if (swap(&v1, &v2))
|
||||||
|
{
|
||||||
|
print_vec(&v1);
|
||||||
|
print_vec(&v2);
|
||||||
|
}
|
||||||
|
// Vec8_t v1 = create(nullptr, 0);
|
||||||
// v1 = reserve(&v1, 10);
|
// v1 = reserve(&v1, 10);
|
||||||
// v1 = pop_back(&v1);
|
// v1 = pop_back(&v1);
|
||||||
for (int i = 0; i < 10; i++)
|
// for (int i = 0; i < 10; i++)
|
||||||
{
|
// {
|
||||||
v1 = push_back(&v1, 'a');
|
// v1 = push_back(&v1, 'a');
|
||||||
}
|
// }
|
||||||
print_vec(&v1);
|
// print_vec(&v1);
|
||||||
printf("SIZE: %zu\n", v1.size);
|
// printf("SIZE: %zu\n", v1.size);
|
||||||
v1 = push_back(&v1, 'a');
|
// v1 = push_back(&v1, 'a');
|
||||||
print_vec(&v1);
|
// print_vec(&v1);
|
||||||
printf("SIZE: %zu\n", v1.size);
|
// printf("SIZE: %zu\n", v1.size);
|
||||||
delete(&v1);
|
delete(&v1);
|
||||||
|
delete(&v2);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user