session: API cleanup
[vpp.git] / src / vppinfra / mhash.c
index 00b67c4..791aa36 100644 (file)
@@ -202,16 +202,10 @@ mhash_init (mhash_t * h, uword n_value_bytes, uword n_key_bytes)
   vec_free (h->key_tmps);
   hash_free (h->hash);
 
-  memset (h, 0, sizeof (h[0]));
+  clib_memset (h, 0, sizeof (h[0]));
   h->n_key_bytes = n_key_bytes;
 
-#if 0
-  if (h->n_key_bytes > 0)
-    {
-      vec_validate (h->key_tmp, h->n_key_bytes - 1);
-      _vec_len (h->key_tmp) = 0;
-    }
-#endif
+  vec_validate (h->key_tmps, os_get_nthreads () - 1);
 
   ASSERT (n_key_bytes < ARRAY_LEN (t));
   h->hash = hash_create2 ( /* elts */ 0,
@@ -228,7 +222,6 @@ mhash_set_tmp_key (mhash_t * h, const void *key)
   u8 *key_tmp;
   int my_cpu = os_get_thread_index ();
 
-  vec_validate (h->key_tmps, my_cpu);
   key_tmp = h->key_tmps[my_cpu];
 
   vec_reset_length (key_tmp);
@@ -263,7 +256,7 @@ typedef struct
 {
   u32 heap_handle;
 
-  /* Must conincide with vec_header. */
+  /* Must coincide with vec_header. */
   vec_header_t vec;
 } mhash_string_key_t;
 
@@ -289,7 +282,7 @@ mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
       sk = (void *) (h->key_vector_or_heap + i);
       sk->heap_handle = handle;
       sk->vec.len = n_key_bytes;
-      clib_memcpy (sk->vec.vector_data, key, n_key_bytes);
+      clib_memcpy_fast (sk->vec.vector_data, key, n_key_bytes);
 
       /* Advance key past vector header. */
       i += sizeof (sk[0]);
@@ -311,7 +304,7 @@ mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
        }
 
       n_key_bytes = h->n_key_bytes;
-      clib_memcpy (k, key, n_key_bytes);
+      clib_memcpy_fast (k, key, n_key_bytes);
     }
   ikey = i;