Skip to content

Commit 609df80

Browse files
0verflowmetrufae
authored andcommitted
Free all flag metadata strings ##analysis
1 parent 52ed65a commit 609df80

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

libr/flag/flag.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,10 +268,11 @@ static HtPP *flag_ht_name_new(void) {
268268

269269
static void ht_free_meta(HtUPKv *kv) {
270270
if (kv) {
271-
// free (kv->key);
272271
RFlagItemMeta *fim = (RFlagItemMeta *)kv->value;
272+
free (fim->type);
273273
free (fim->comment);
274274
free (fim->color);
275+
free (fim->alias);
275276
free (fim);
276277
}
277278
}

test/unit/test_flags.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,27 @@ bool test_r_flag_rename_unset_all(void) {
151151
mu_end;
152152
}
153153

154+
bool test_r_flag_metadata_lifetime(void) {
155+
RFlag *flags = r_flag_new ();
156+
mu_assert_notnull (flags, "r_flag_new () failed");
157+
158+
RFlagItem *fi = r_flag_set (flags, "with_metadata", 1024, 4);
159+
mu_assert_notnull (fi, "cannot set flag");
160+
mu_assert_streq (r_flag_item_set_type (flags, fi, "function"),
161+
"function", "flag type set");
162+
mu_assert_streq (r_flag_item_set_alias (flags, fi, "entry0 + 4"),
163+
"entry0 + 4", "flag alias set");
164+
165+
r_flag_free (flags);
166+
mu_end;
167+
}
168+
154169
int all_tests(void) {
155170
mu_run_test (test_r_flag_get_set);
156171
mu_run_test (test_r_flag_by_spaces);
157172
mu_run_test (test_r_flag_get_at);
158173
mu_run_test (test_r_flag_rename_unset_all);
174+
mu_run_test (test_r_flag_metadata_lifetime);
159175
return tests_passed != tests_run;
160176
}
161177

0 commit comments

Comments
 (0)