vppinfra: hash [un]set malloc/free takes a const key 02/24202/3
authorNeale Ranns <nranns@cisco.com>
Mon, 6 Jan 2020 21:09:12 +0000 (21:09 +0000)
committerDave Barach <openvpp@barachs.net>
Tue, 7 Jan 2020 12:35:52 +0000 (12:35 +0000)
Type: refactor

the key is not modified by these functions

Change-Id: I578f054355fca69e8a086bb69013155a01ed759f
Signed-off-by: Neale Ranns <nranns@cisco.com>
src/vppinfra/hash.h

index 59dbf8c..e4a65d2 100644 (file)
@@ -276,7 +276,7 @@ uword hash_bytes (void *v);
 
 /* Public inline function allocate and copy key to use in hash for pointer key */
 always_inline void
-hash_set_mem_alloc (uword ** h, void *key, uword v)
+hash_set_mem_alloc (uword ** h, const void *key, uword v)
 {
   size_t ksz = hash_header (*h)->user;
   void *copy = clib_mem_alloc (ksz);
@@ -292,14 +292,14 @@ hash_set_mem_alloc (uword ** h, void *key, uword v)
 
 /* Public inline function to unset pointer key and then free the key memory */
 always_inline void
-hash_unset_mem_free (uword ** h, void *key)
+hash_unset_mem_free (uword ** h, const void *key)
 {
   hash_pair_t *hp = hash_get_pair_mem (*h, key);
   if (PREDICT_TRUE (hp != NULL))
     {
-      key = uword_to_pointer (hp->key, void *);
-      hash_unset_mem (*h, key);
-      clib_mem_free (key);
+      void *_k = uword_to_pointer (hp->key, void *);
+      hash_unset_mem (*h, _k);
+      clib_mem_free (_k);
     }
 }