From a11bf45b1aba14246cc1259fff1dfb8e9c60581f Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Wed, 17 Apr 2019 17:27:31 -0400 Subject: Use template-specific key compare fn when deleting records A simple memcmp won't work when comparing pointer-keys, such as those used by the bihash_vec8_8.h template. Change-Id: I77e59f3fd7f7740ef42908ace90ed4843e1c9ac7 Signed-off-by: Dave Barach --- src/vppinfra/bihash_template.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/vppinfra/bihash_template.c') diff --git a/src/vppinfra/bihash_template.c b/src/vppinfra/bihash_template.c index 6e910febce1..2840342a5ce 100644 --- a/src/vppinfra/bihash_template.c +++ b/src/vppinfra/bihash_template.c @@ -468,7 +468,7 @@ static inline int BV (clib_bihash_add_del_inline) */ for (i = 0; i < limit; i++) { - if (!memcmp (&(v->kvp[i]), &add_v->key, sizeof (add_v->key))) + if (BV (clib_bihash_key_compare) (v->kvp[i].key, add_v->key)) { CLIB_MEMORY_BARRIER (); /* Add a delay */ clib_memcpy_fast (&(v->kvp[i]), add_v, sizeof (*add_v)); @@ -519,7 +519,7 @@ static inline int BV (clib_bihash_add_del_inline) for (i = 0; i < limit; i++) { /* Found the key? Kill it... */ - if (!memcmp (&(v->kvp[i]), &add_v->key, sizeof (add_v->key))) + if (BV (clib_bihash_key_compare) (v->kvp[i].key, add_v->key)) { clib_memset (&(v->kvp[i]), 0xff, sizeof (*(add_v))); /* Is the bucket empty? */ -- cgit 1.2.3-korg