diff options
author | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-11-12 00:15:11 +0100 |
---|---|---|
committer | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-11-17 00:56:51 +0100 |
commit | 45bc09ae553e7ac5bf6cd7ab2e77e7f6d0877596 (patch) | |
tree | 347cd702a5d3914e003401158b916c709caa302e /lib | |
parent | 547acf3eed92d3564139cccf205c852178bcc310 (diff) |
[HICN-395] Static face/route maintainance though face manager
Change-Id: I8f2287a262412bacc50f3c89756ec9fd6ce30d33
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/includes/hicn/util/array.h | 3 | ||||
-rw-r--r-- | lib/includes/hicn/util/set.h | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/includes/hicn/util/array.h b/lib/includes/hicn/util/array.h index ab8852ed8..56cfcad8b 100644 --- a/lib/includes/hicn/util/array.h +++ b/lib/includes/hicn/util/array.h @@ -167,9 +167,10 @@ NAME ## _get(const NAME ## _t * array, const T search, T * element) { \ assert(element); \ for (unsigned i = 0; i < array->size; i++) \ - if (CMP(search, array->elements[i]) == 0) \ + if (CMP(search, array->elements[i]) == 0) { \ *element = array->elements[i]; \ return 0; \ + } \ /* Not found */ \ *element = NULL; \ return 0; \ diff --git a/lib/includes/hicn/util/set.h b/lib/includes/hicn/util/set.h index c1f43918b..c7dd7bf09 100644 --- a/lib/includes/hicn/util/set.h +++ b/lib/includes/hicn/util/set.h @@ -138,10 +138,12 @@ NAME ## _free(NAME ## _t * set) \ int \ NAME ## _add(NAME ## _t * set, const T element) \ { \ + T * found = tfind(element, &set->root, (cmp_t)CMP); \ void * ptr = tsearch(element, &set->root, (cmp_t)CMP); \ if (!ptr) \ return -1; \ - set->size++; \ + if (!found) \ + set->size++; \ return 0; \ } \ \ @@ -214,7 +216,7 @@ int \ NAME ## _get_array(const NAME ## _t * set, T ** element) \ { \ if (!element) \ - goto END; \ + goto END; \ *element = malloc(set->size * sizeof(T)); \ if (!*element) \ return -1; \ |