Start of rewrite

Based on lockpick_rcm 1.9.0
This commit is contained in:
SuchMemeManySkill
2020-12-23 17:39:22 +01:00
parent acef46781d
commit d6c4204027
441 changed files with 81040 additions and 11567 deletions

48
source/utils/vector.c Normal file
View File

@@ -0,0 +1,48 @@
#include "vector.h"
#include <string.h>
#include <mem/heap.h>
Vector_t newVec(u32 typesz, u32 preallocate)
{
Vector_t res = {
.data = calloc(preallocate, typesz),
.capacity = preallocate * typesz,
.count = 0,
.elemSz = typesz
};
// check .data != null;
return res;
}
Vector_t vecFromArray(void* array, u32 count, u32 typesz)
{
Vector_t res = {
.data = array,
.capacity = count * typesz,
.count = count,
.elemSz = typesz
};
return res;
}
bool vecAdd(Vector_t* v, void* elem, u32 sz)
{
if (!v || !elem || v->elemSz != sz)
return false;
u32 usedbytes = v->count * sz;
if (usedbytes >= v->capacity)
{
v->capacity *= 2;
void *buff = malloc(v->capacity);
if (!buff)
return false;
memcpy(buff, v->data, v->capacity / 2);
free(v->data);
v->data = buff;
}
memcpy((char*)v->data + usedbytes, elem, sz);
v->count++;
return true;
}