macro: introduce _cleanup_free_ macro for automatic freeing of scoped vars and make use of it

This commit is contained in:
Lennart Poettering
2012-09-13 22:30:26 +02:00
parent a1d41e17a5
commit 2fbe635a83
5 changed files with 46 additions and 59 deletions
+1 -2
View File
@@ -67,7 +67,7 @@ static int read_distro_hostname(char **hn) {
#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
int r;
FILE *f;
_cleanup_fclose_ FILE *f = NULL;
assert(hn);
@@ -114,7 +114,6 @@ static int read_distro_hostname(char **hn) {
r = -ENOENT;
finish:
fclose(f);
return r;
#elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE)
+2 -4
View File
@@ -1469,7 +1469,7 @@ int config_parse_unit_condition_path(
Unit *u = data;
bool trigger, negate;
Condition *c;
char *p;
_cleanup_free_ char *p = NULL;
assert(filename);
assert(lvalue);
@@ -1496,7 +1496,6 @@ int config_parse_unit_condition_path(
c = condition_new(cond, p, trigger, negate);
if (!c)
return -ENOMEM;
free(p);
LIST_PREPEND(Condition, conditions, u->conditions, c);
return 0;
@@ -1516,7 +1515,7 @@ int config_parse_unit_condition_string(
Unit *u = data;
bool trigger, negate;
Condition *c;
char *s;
_cleanup_free_ char *s = NULL;
assert(filename);
assert(lvalue);
@@ -1538,7 +1537,6 @@ int config_parse_unit_condition_string(
c = condition_new(cond, s, trigger, negate);
if (!c)
return log_oom();
free(s);
LIST_PREPEND(Condition, conditions, u->conditions, c);
return 0;