X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fhashmap.c;h=c89630f04ccdbf55d3cd47868974455c73cf9430;hp=75ea2e30ba9d8ce342adc9195e0758cd43b0e810;hb=7b4a8335022121d06336eae363f3d7fcbcac1c45;hpb=45e507a05750d43384bfbe90b8b22dfb5a1c5d2a diff --git a/src/basic/hashmap.c b/src/basic/hashmap.c index 75ea2e30b..c89630f04 100644 --- a/src/basic/hashmap.c +++ b/src/basic/hashmap.c @@ -1777,20 +1777,18 @@ int set_consume(Set *s, void *value) { int set_put_strdup(Set *s, const char *p) { char *c; - int r; assert(s); assert(p); + if (set_contains(s, (char*) p)) + return 0; + c = strdup(p); if (!c) return -ENOMEM; - r = set_consume(s, c); - if (r == -EEXIST) - return 0; - - return r; + return set_consume(s, c); } #if 0 /// UNNEEDED by elogind