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