Use __attribute__((weak)) references where necessary
[vpp.git] / src / vlibmemory / memory_api.c
index 0ee1384..1da77c5 100644 (file)
@@ -339,6 +339,7 @@ vl_api_memclnt_delete_t_handler (vl_api_memclnt_delete_t * mp)
                          regp->vl_api_registration_pool_index);
          pthread_mutex_lock (&svm->mutex);
          oldheap = svm_push_data_heap (svm);
+         vec_free (regp->name);
          /* Poison the old registration */
          memset (regp, 0xF1, sizeof (*regp));
          clib_mem_free (regp);
@@ -458,6 +459,20 @@ vl_mem_api_init (const char *region_name)
   return 0;
 }
 
+clib_error_t *
+map_api_segment_init (vlib_main_t * vm)
+{
+  api_main_t *am = &api_main;
+  int rv;
+
+  if ((rv = vl_mem_api_init (am->region_name)) < 0)
+    {
+      return clib_error_return (0, "vl_mem_api_init (%s) failed",
+                               am->region_name);
+    }
+  return 0;
+}
+
 static void
 send_memclnt_keepalive (vl_api_registration_t * regp, f64 now)
 {
@@ -899,8 +914,6 @@ vlibmemory_init (vlib_main_t * vm)
   return error;
 }
 
-VLIB_INIT_FUNCTION (vlibmemory_init);
-
 void
 vl_set_memory_region_name (const char *name)
 {