Fixing a couple of memory leaks
diff --git a/vpr/SRC/base/vpr_api.c b/vpr/SRC/base/vpr_api.c
index 8f0c759..24b2852 100644
--- a/vpr/SRC/base/vpr_api.c
+++ b/vpr/SRC/base/vpr_api.c
@@ -676,12 +676,12 @@
 	Arch->Switches = NULL;
 	g_arch_switch_inf = NULL;
 	for (int i = 0; i < Arch->num_segments; ++i) {
-		if (Arch->Segments->cb != NULL) {
-			free(Arch->Segments[i].cb);
-		}
-		if (Arch->Segments->sb != NULL) {
-			free(Arch->Segments[i].sb);
-		}
+		free(Arch->Segments[i].cb);
+		Arch->Segments[i].cb = NULL;
+		free(Arch->Segments[i].sb);
+		Arch->Segments[i].sb = NULL;
+		free(Arch->Segments[i].name);
+		Arch->Segments[i].name = NULL;
 	}
 	free(Arch->Segments);
 	t_model *model = Arch->models;
@@ -828,7 +828,7 @@
 
 		free(type_descriptors[i].is_Fc_frac);
 		free(type_descriptors[i].is_Fc_full_flex);
-		free(type_descriptors[i].Fc);
+		free_matrix(type_descriptors[i].Fc, 0, type_descriptors[i].num_pins-1, 0, sizeof(float));
 
 		free_pb_type(type_descriptors[i].pb_type);
 		free(type_descriptors[i].pb_type);