char** pakfire_string_split(const char* s, char delim);
char* pakfire_string_join(char** list, const char* delim);
+
+/*
+ Cleanup Stuff
+*/
+
+void inline pakfire_strings_free(char** array) {
+ for (char** s = array; *s; s++)
+ free(*s);
+
+ free(array);
+}
+
#define TIME_STRING_MAX 32
#define pakfire_format_size(dst, value) \
ERROR:
if (ret) {
- for (char** e = ret; *e; e++)
- free(*e);
- free(ret);
-
+ pakfire_strings_free(ret);
ret = NULL;
}
// Build Arches
char** build_arches = pakfire_package_get_strings(pkg, PAKFIRE_PKG_BUILD_ARCHES);
if (build_arches) {
- for (char** build_arch = build_arches; *build_arch; build_arch++) {
+ for (char** build_arch = build_arches; *build_arch; build_arch++)
pakfire_package_dump_add_line(&string, _("Build Arch"), *build_arch);
- free(*build_arch);
- }
- free(build_arches);
+ pakfire_strings_free(build_arches);
}
enum pakfire_digest_types digest_type = PAKFIRE_DIGEST_UNDEFINED;
goto ERROR;
ERROR:
- if (dependencies) {
- for (char** dep = dependencies; *dep; dep++)
- free(*dep);
- free(dependencies);
- }
+ if (dependencies)
+ pakfire_strings_free(dependencies);
return r;
}
r = pakfire_json_add_string_array(pkg->pakfire, object, "arches", build_arches);
// Cleanup
- for (char** build_arch = build_arches; *build_arch; build_arch++)
- free(*build_arch);
- free(build_arches);
+ pakfire_strings_free(build_arches);
if (r)
goto ERROR;