The argument given to the __attribute__((cleanup)) functions is the
address of the variable that's going out of scope. It cannot be NULL.
The "if (!s)" check in set_freep() is pointless.
Perhaps "if (!*s)" was intented. But that's pointless too, because
set_free()/set_free_free() are OK to call with a NULL argument (just
like free()).
Setting "*s = NULL" is pointless, because the variable that s points
to is about to go out of scope.
The same holds for strv_freep().
}
void set_freep(Set **s) {
}
void set_freep(Set **s) {
}
void set_free_free(Set *s) {
}
void set_free_free(Set *s) {
}
void set_free_freep(Set **s) {
}
void set_free_freep(Set **s) {
}
int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t compare_func) {
}
int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t compare_func) {
}
void strv_freep(char ***l) {
}
void strv_freep(char ***l) {
}
char **strv_copy(char **l) {
}
char **strv_copy(char **l) {