From d684bbfa5a6e5b56372d17e96f1702afc0f2a958 Mon Sep 17 00:00:00 2001
From: Dmitry Simonenko <pmwkaa@gmail.com>
Date: Mon, 22 Aug 2011 17:47:16 +0400
Subject: [PATCH] * namespace_free rewrited

---
 mod/box/box.m       | 14 +++++++-------
 mod/box/memcached.h |  3 ---
 mod/box/memcached.m | 15 ---------------
 3 files changed, 7 insertions(+), 25 deletions(-)

diff --git a/mod/box/box.m b/mod/box/box.m
index 31118d1e65..363ca43759 100644
--- a/mod/box/box.m
+++ b/mod/box/box.m
@@ -991,20 +991,20 @@ xlog_print(struct recovery_state *r __attribute__((unused)), struct tbuf *t)
 void
 namespace_free(void)
 {
-	for (int i = 0; cfg.namespace[i] != NULL; ++i) {
-		tarantool_cfg_namespace *cfg_namespace = cfg.namespace[i];
-		if (!CNF_STRUCT_DEFINED(cfg_namespace) || !cfg_namespace->enabled)
+	int i;
+	for (i = 0 ; i < BOX_NAMESPACE_MAX ; i++) {
+		if (!namespace[i].enabled)
 			continue;
-		for (int j = 0; cfg_namespace->index[j] != NULL; ++j) {
+		int j;
+		for (j = 0 ; j < BOX_INDEX_MAX ; j++) {
 			struct index *index = &namespace[i].index[j];
-
+			if (index->key_cardinality == 0)
+				break;
 			index_free(index);
-
 			sfree(index->key_field);
 			sfree(index->field_cmp_order);
 		}
 	}
-	memcached_namespace_free();
 }
 
 void
diff --git a/mod/box/memcached.h b/mod/box/memcached.h
index e03ef0e245..4325744548 100644
--- a/mod/box/memcached.h
+++ b/mod/box/memcached.h
@@ -36,9 +36,6 @@ memcached_init();
 void
 memcached_namespace_init();
 
-void
-memcached_namespace_free();
-
 int
 memcached_check_config(struct tarantool_cfg *conf);
 
diff --git a/mod/box/memcached.m b/mod/box/memcached.m
index 35d48070ec..b0458277e7 100644
--- a/mod/box/memcached.m
+++ b/mod/box/memcached.m
@@ -371,21 +371,6 @@ memcached_namespace_init()
 	index_init(memc_index, memc_ns, 0);
 }
 
-void
-memcached_namespace_free()
-{
-	struct namespace *memc_ns;
-	struct index *memc_index;
-
-	memc_ns = &namespace[cfg.memcached_namespace];
-	memc_index = &memc_ns->index[0];
-
-	index_free(memc_index);
-
-	sfree(memc_index->key_field);
-	sfree(memc_index->field_cmp_order);
-}
-
 void
 memcached_expire_loop(void *data __attribute__((unused)))
 {
-- 
GitLab