Skip to content

Commit

Permalink
Merge pull request #22 from yellowcake-org/develop
Browse files Browse the repository at this point in the history
Releasing 0.8.4
  • Loading branch information
0xceed authored Nov 23, 2023
2 parents c99c42f + e722bdf commit e6d60a7
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 33 deletions.
18 changes: 8 additions & 10 deletions examples/ycilst/source/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ int main(int argc, char *argv[]) {
.fread = &ycilst_io_fread,
};

yc_res_lst_parse_result_t result = {NULL};
if (YC_RES_LST_STATUS_OK != yc_res_lst_parse(filename, &io_api, &result)) {
yc_res_lst_entries_t entries = { .count = 0, .pointers = NULL };
if (YC_RES_LST_STATUS_OK != yc_res_lst_parse(filename, &io_api, &entries)) {
exit_code = 2;
goto exit;
}

for (size_t entry_idx = 0; entry_idx < result.entries->count; ++entry_idx) {
yc_res_lst_entry_t *entry = &result.entries->pointers[entry_idx];
for (size_t entry_idx = 0; entry_idx < entries.count; ++entry_idx) {
yc_res_lst_entry_t *entry = &entries.pointers[entry_idx];

printf("[%lu] Value: %s", entry_idx, entry->value);

Expand All @@ -68,12 +68,10 @@ int main(int argc, char *argv[]) {
printf("\n");
yc_res_lst_invalidate(entry);
}

result.entries->pointers = NULL;
result.entries->count = 0;

free(result.entries);
result.entries = NULL;

entries.count = 0;
free(entries.pointers);
entries.pointers = NULL;
}

exit:
Expand Down
21 changes: 9 additions & 12 deletions examples/ycimap/source/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,13 @@ char *proto_filename(uint32_t pid, const char *root, const char *type) {
.fread = &ycimap_io_fread,
};

yc_res_lst_parse_result_t result = {.entries = NULL};
yc_res_lst_status_t status = yc_res_lst_parse(lst_name, &io_api, &result);
yc_res_lst_entries_t entries = { .count = 0, .pointers = NULL };
yc_res_lst_status_t status = yc_res_lst_parse(lst_name, &io_api, &entries);

size_t index = yc_res_pro_index_from_object_id(pid) - 1;
if (YC_RES_LST_STATUS_OK != status || result.entries->count <= index) { goto cleanup; }
if (YC_RES_LST_STATUS_OK != status || entries.count <= index) { goto cleanup; }

yc_res_lst_entry_t *entry = &result.entries->pointers[index];
yc_res_lst_entry_t *entry = &entries.pointers[index];
if (NULL == entry->value) { goto cleanup; }

size_t proto_name_size = strlen(root) + strlen(path) + 1 + strlen(type) + 1 + strlen(entry->value) + 1;
Expand All @@ -191,16 +191,13 @@ char *proto_filename(uint32_t pid, const char *root, const char *type) {
snprintf(proto_name, proto_name_size, "%s%s/%s/%s", root, path, type, entry->value);

cleanup:
for (size_t entry_idx = 0; entry_idx < result.entries->count; ++entry_idx) {
yc_res_lst_invalidate(&result.entries->pointers[entry_idx]);
for (size_t entry_idx = 0; entry_idx < entries.count; ++entry_idx) {
yc_res_lst_invalidate(&entries.pointers[entry_idx]);
}

free(result.entries->pointers);
result.entries->pointers = NULL;
result.entries->count = 0;

free(result.entries);
result.entries = NULL;
entries.count = 0;
free(entries.pointers);
entries.pointers = NULL;

return proto_name;
}
Expand Down
6 changes: 1 addition & 5 deletions include/lst/methods/methods.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
#ifndef LIBYCRES_INCLUDE_LST_METHODS_H
#define LIBYCRES_INCLUDE_LST_METHODS_H

typedef struct yc_res_lst_parse_result {
yc_res_lst_entries_t *entries;
} yc_res_lst_parse_result_t;

yc_res_lst_status_t yc_res_lst_parse(const char *filename, const yc_res_io_fs_api_t *api, yc_res_lst_parse_result_t *result);
yc_res_lst_status_t yc_res_lst_parse(const char *filename, const yc_res_io_fs_api_t *api, yc_res_lst_entries_t *result);

void yc_res_lst_invalidate(yc_res_lst_entry_t *entry);

Expand Down
9 changes: 3 additions & 6 deletions source/formats/lst/yc_res_lst_parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,17 @@ void yc_res_lst_parse_cleanup(
char *value, char *index
);

yc_res_lst_status_t yc_res_lst_parse(const char *filename, const yc_res_io_fs_api_t *api, yc_res_lst_parse_result_t *result) {
yc_res_lst_status_t yc_res_lst_parse(const char *filename, const yc_res_io_fs_api_t *api, yc_res_lst_entries_t *entries) {
void *file = api->fopen(filename, "rb");

if (NULL == file) {
yc_res_lst_parse_cleanup(file, api, NULL, NULL, NULL);
return YC_RES_LST_STATUS_IO;
}

yc_res_lst_entries_t *entries = malloc(sizeof(yc_res_lst_entries_t));

if (NULL == entries) {
yc_res_lst_parse_cleanup(file, api, NULL, NULL, NULL);
return YC_RES_LST_STATUS_MEM;
return YC_RES_LST_STATUS_IO;
}

entries->count = 0;
Expand Down Expand Up @@ -107,8 +106,6 @@ yc_res_lst_status_t yc_res_lst_parse(const char *filename, const yc_res_io_fs_ap
}

yc_res_lst_parse_cleanup(file, api, NULL, value, index);

result->entries = entries;
return YC_RES_LST_STATUS_OK;
}

Expand Down

0 comments on commit e6d60a7

Please sign in to comment.