Compare commits

...

2 commits

Author SHA1 Message Date
0e23db6e4f only malloc element->data if its a null pointer 2026-08-02 14:59:49 -07:00
387bad5a80 add pointers for string types 2026-08-02 14:59:09 -07:00
2 changed files with 19 additions and 4 deletions

View file

@ -69,6 +69,19 @@ struct cfglr_element {
}\ }\
} }
#define CFGLR_ELEMENT_PTR(KEY, POINTER, TYPE, SIZE, DEFAULT, DEF_SIZE, SIGNALERS...) (cfglr_element_t){\
.key = KEY,\
.data = POINTER,\
.datatype = TYPE,\
.datatype_size = SIZE,\
.default_data = (void*)DEFAULT,\
.default_size = DEF_SIZE,\
.signalers = {\
SIGNALERS,\
{ NULL }\
}\
}
#define CFGLR_ELEMENT_U8(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U8, sizeof(uint8_t), DEFAULT, 1, SIGNALERS) #define CFGLR_ELEMENT_U8(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U8, sizeof(uint8_t), DEFAULT, 1, SIGNALERS)
#define CFGLR_ELEMENT_I8(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_I8, sizeof(int8_t), DEFAULT, 1, SIGNALERS) #define CFGLR_ELEMENT_I8(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_I8, sizeof(int8_t), DEFAULT, 1, SIGNALERS)
#define CFGLR_ELEMENT_U16(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U16, sizeof(uint16_t), DEFAULT, 2, SIGNALERS) #define CFGLR_ELEMENT_U16(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U16, sizeof(uint16_t), DEFAULT, 2, SIGNALERS)
@ -78,7 +91,7 @@ struct cfglr_element {
#define CFGLR_ELEMENT_U64(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U64, sizeof(uint64_t), DEFAULT, 8, SIGNALERS) #define CFGLR_ELEMENT_U64(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_U64, sizeof(uint64_t), DEFAULT, 8, SIGNALERS)
#define CFGLR_ELEMENT_I64(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_I64, sizeof(int64_t), DEFAULT, 8, SIGNALERS) #define CFGLR_ELEMENT_I64(KEY, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_I64, sizeof(int64_t), DEFAULT, 8, SIGNALERS)
#define CFGLR_ELEMENT_BIN(KEY, SIZE, DEFAULT, DEF_SIZE, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_BIN, SIZE, DEFAULT, DEF_SIZE, SIGNALERS) #define CFGLR_ELEMENT_BIN(KEY, SIZE, DEFAULT, DEF_SIZE, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_BIN, SIZE, DEFAULT, DEF_SIZE, SIGNALERS)
#define CFGLR_ELEMENT_STR(KEY, SIZE, DEFAULT, SIGNALERS...) CFGLR_ELEMENT(KEY, CFGLR_DATATYPE_STR, SIZE, DEFAULT, strlen(DEFAULT), SIGNALERS) #define CFGLR_ELEMENT_STR(KEY, POINTER, SIZE, DEFAULT, SIGNALERS...) CFGLR_ELEMENT_PTR(KEY, POINTER, CFGLR_DATATYPE_STR, SIZE, DEFAULT, strlen(DEFAULT), SIGNALERS)
typedef struct cfglr_backend cfglr_backend_t; typedef struct cfglr_backend cfglr_backend_t;

View file

@ -11,9 +11,11 @@ uint8_t cfglr_add_element(cfglr_handle_t *handle, cfglr_element_t *element) {
CFGLR_LOGI(TAG, "size: %d", element->datatype_size); CFGLR_LOGI(TAG, "size: %d", element->datatype_size);
element->handle = handle; element->handle = handle;
element->data = (void*)malloc(element->datatype_size); if(element->data == NULL) {
bzero(element->data, 0); element->data = (void*)malloc(element->datatype_size);
CFGLR_LOGD(TAG, "malloc: %d @ %p", element->datatype_size, element->data); bzero(element->data, 0);
CFGLR_LOGD(TAG, "malloc: %d @ %p", element->datatype_size, element->data);
}
//CFGLR_LOGI(TAG, "element->data: %p", element->data); //CFGLR_LOGI(TAG, "element->data: %p", element->data);