diff options
author | Leandro Pereira <leandro@hardinfo.org> | 2019-07-11 20:55:09 -0700 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2019-07-11 20:59:05 -0700 |
commit | db94467dd8d6b1d946b02bb3b83fd5271b12aaa8 (patch) | |
tree | be4fb10a5334e20af7c6ab30c252933727e1f6bc /hardinfo | |
parent | 3a333a773e524b8f167168e0b50025e0ba3bf9c9 (diff) |
Misc. cleanups in struct Info implementation
Diffstat (limited to 'hardinfo')
-rw-r--r-- | hardinfo/info.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/hardinfo/info.c b/hardinfo/info.c index fd2eb959..e7310037 100644 --- a/hardinfo/info.c +++ b/hardinfo/info.c @@ -198,26 +198,27 @@ static const GCompareFunc sort_functions[INFO_GROUP_SORT_MAX] = { [INFO_GROUP_SORT_TAG_DESCENDING] = info_field_cmp_tag_descending, }; -static void _field_free_strings(struct InfoField *field) +static void field_free_strings(struct InfoField *field) { - if (field) { - if (field->free_value_on_flatten) - g_free((gchar *)field->value); - if (field->free_name_on_flatten) - g_free((gchar *)field->name); - g_free(field->tag); - } + if (field->free_value_on_flatten) + g_free((gchar *)field->value); + if (field->free_name_on_flatten) + g_free((gchar *)field->name); + g_free(field->tag); } -static void _group_free_field_strings(struct InfoGroup *group) +static void free_group_fields(struct InfoGroup *group) { - guint i; if (group && group->fields) { + guint i; + for (i = 0; i < group->fields->len; i++) { - struct InfoField field; - field = g_array_index(group->fields, struct InfoField, i); - _field_free_strings(&field); + struct InfoField *field = + &g_array_index(group->fields, struct InfoField, i); + field_free_strings(field); } + + g_array_free(group->fields, TRUE); } } @@ -228,9 +229,8 @@ static void flatten_group(GString *output, const struct InfoGroup *group, guint if (group->name != NULL) g_string_append_printf(output, "[%s]\n", group->name); - if (group->sort != INFO_GROUP_SORT_NONE) { + if (group->sort != INFO_GROUP_SORT_NONE) g_array_sort(group->fields, sort_functions[group->sort]); - } if (group->fields) { for (i = 0; i < group->fields->len; i++) { @@ -245,11 +245,12 @@ static void flatten_group(GString *output, const struct InfoGroup *group, guint tp = tmp_tag; } - if (tagged || flagged || field->icon) + if (tagged || flagged || field->icon) { g_string_append_printf(output, "$%s%s%s$", field->highlight ? "*" : "", field->report_details ? "!" : "", tp); + } g_string_append_printf(output, "%s=%s\n", field->name, field->value); } @@ -338,10 +339,7 @@ gchar *info_flatten(struct Info *info) flatten_group(values, group, i); flatten_shell_param(shell_param, group, i); - _group_free_field_strings(group); - - if (group->fields) - g_array_free(group->fields, TRUE); + free_group_fields(group); } g_array_free(info->groups, TRUE); |