at work
This commit is contained in:
@@ -57,7 +57,7 @@ valgrind: $(bin_TESTS)
|
||||
done
|
||||
|
||||
bin_TESTS = \
|
||||
cstring_test
|
||||
cdynarr_test
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
cfparser_test \
|
||||
|
||||
@@ -425,7 +425,7 @@ include_HEADERS = \
|
||||
|
||||
@HAVE_VALGRIND_TRUE@VALGRIND_OPT = --tool=memcheck -s
|
||||
bin_TESTS = \
|
||||
cstring_test
|
||||
cdynarr_test
|
||||
|
||||
|
||||
#TESTS = $(bin_TESTS)
|
||||
|
||||
@@ -36,8 +36,9 @@ void* cintarr_init(cintarr_t* array) {
|
||||
|
||||
void* cintarr_append(cintarr_t* array, int64_t add) {
|
||||
if (array->size + 1 > array->capa) {
|
||||
size_t newcapa = (array->capa * 10) / 6 ;
|
||||
int64_t* newarray = realloc(array->data, newcapa);
|
||||
size_t newcapa = (array->capa * 10) / 6;
|
||||
size_t memsize = newcapa * sizeof(int64_t);
|
||||
int64_t* newarray = realloc(array->data, memsize);
|
||||
if (newarray == NULL) return NULL;
|
||||
array->capa = newcapa;
|
||||
array->data = newarray;
|
||||
@@ -56,8 +57,9 @@ void cintarr_destroy(cintarr_t* array) {
|
||||
}
|
||||
|
||||
void cintarr_free(cintarr_t* array) {
|
||||
if (array == NULL) return;
|
||||
cintarr_destroy(array);
|
||||
free(array->data);
|
||||
free(array);
|
||||
}
|
||||
|
||||
|
||||
@@ -91,3 +93,46 @@ void cfltarr_destroy(cfltarr_t* array) {
|
||||
if (array == NULL) return;
|
||||
free(array->data);
|
||||
}
|
||||
|
||||
|
||||
/* Bool array */
|
||||
cboolarr_t* new_cboolarr(void) {
|
||||
cboolarr_t* arr = malloc(sizeof(cboolarr_t));
|
||||
if (arr == NULL) return NULL;
|
||||
if (cboolarr_init(arr) == NULL) {
|
||||
cboolarr_free(arr);
|
||||
return NULL;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
void* cboolarr_init(cboolarr_t* array) {
|
||||
array->data = malloc(INIT_CAPA * sizeof(bool));
|
||||
if (array->data == NULL) return NULL;
|
||||
memset(array->data, 0, INIT_CAPA);
|
||||
array->capa = INIT_CAPA;
|
||||
array->size = 0;
|
||||
return array->data;
|
||||
}
|
||||
|
||||
void* cboolarr_append(cboolarr_t* array, bool add) {
|
||||
if (array->size + 1 > array->capa) {
|
||||
size_t newcapa = (array->capa * 10) / 6 ;
|
||||
bool* newarray = realloc(array->data, newcapa);
|
||||
if (newarray == NULL) return NULL;
|
||||
array->capa = newcapa;
|
||||
array->data = newarray;
|
||||
}
|
||||
array->data[array->size++] = add;
|
||||
return array->data;
|
||||
}
|
||||
|
||||
void cboolarr_destroy(cboolarr_t* array) {
|
||||
if (array == NULL) return;
|
||||
free(array->data);
|
||||
}
|
||||
|
||||
void cboolarr_free(cboolarr_t* array) {
|
||||
cboolarr_destroy(array);
|
||||
free(array->data);
|
||||
}
|
||||
|
||||
@@ -12,9 +12,10 @@
|
||||
|
||||
|
||||
void test01(void) {
|
||||
|
||||
|
||||
|
||||
cintarr_t* arr = new_cintarr();
|
||||
cintarr_append(arr, 12);
|
||||
cintarr_append(arr, 12);
|
||||
cintarr_free(arr);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
|
||||
@@ -103,9 +103,9 @@ int jblock_addstr(jblock_t* jb, char* key, char* val) {
|
||||
if (jblock_checkalloc(jb) == NULL) {
|
||||
return -1;
|
||||
}
|
||||
jb->kvarr[jb->kvsize].type = JKVTYPE_STR;
|
||||
jb->kvarr[jb->kvsize].key = strcopy(key);
|
||||
jb->kvarr[jb->kvsize].str = strcopy(val);
|
||||
jb->kvarr[jb->kvsize].type = JKVTYPE_STR;
|
||||
return ++jb->kvsize;
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ void jblock_destroy(jblock_t* jb) {
|
||||
for (int i = 0; i < jb->kvsize; i++) {
|
||||
switch (jb->kvarr[i].type) {
|
||||
case JKVTYPE_BLK: {
|
||||
jblock_destroy(jb->kvarr[i].blk);
|
||||
//jblock_destroy(jb->kvarr[i].blk);
|
||||
break;
|
||||
}
|
||||
//case JKVTYPE_BLKARR: {
|
||||
@@ -185,15 +185,15 @@ void jblock_destroy(jblock_t* jb) {
|
||||
break;
|
||||
}
|
||||
case JKVTYPE_INTARR: {
|
||||
//free(jb->kvarr[i].numarr);
|
||||
cintarr_destroy(&(jb->kvarr[i].numarr));
|
||||
break;
|
||||
}
|
||||
case JKVTYPE_BOOLARR: {
|
||||
//free(jb->kvarr[i].flagarr);
|
||||
cboolarr_destroy(&(jb->kvarr[i].flagarr));
|
||||
break;
|
||||
}
|
||||
case JKVTYPE_FLTARR: {
|
||||
//free(jb->kvarr[i].fltarr);
|
||||
cfltarr_destroy(&(jb->kvarr[i].fltarr));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ typedef struct {
|
||||
cintarr_t numarr;
|
||||
cfltarr_t fltarr;
|
||||
cboolarr_t flagarr;
|
||||
jblock_t* blk;
|
||||
jblock_t* blkarr;
|
||||
char** strarr;
|
||||
//jblock_t* blk;
|
||||
//jblock_t* blkarr;
|
||||
//char** strarr;
|
||||
|
||||
};
|
||||
int arrsize;
|
||||
|
||||
Reference in New Issue
Block a user