fix memory leaks

This commit is contained in:
2024-10-27 19:43:05 +00:00
parent a86291ca75
commit 87d8767d11
9 changed files with 236 additions and 35 deletions

View File

@@ -16,6 +16,33 @@ struct b_command_option *b_command_option_create(void)
return out;
}
void b_command_option_destroy(struct b_command_option *opt)
{
if (opt->opt_long_name) {
free(opt->opt_long_name);
}
if (opt->opt_description) {
free(opt->opt_description);
}
b_queue_iterator it = {0};
b_queue_iterator_begin(&opt->opt_args, &it);
while (b_queue_iterator_is_valid(&it)) {
struct b_command_arg *arg
= b_unbox(struct b_command_arg, it.entry, arg_entry);
if (!arg) {
break;
}
b_queue_iterator_erase(&it);
b_command_arg_destroy(arg);
}
free(opt);
}
b_status b_command_option_set_long_name(
struct b_command_option *opt, const char *name)
{