Skip to content

Commit 509e135

Browse files
committed
Replace linear base allocator with the global one in critnib
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 6cd2abc commit 509e135

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

src/critnib/critnib.c

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
#include <stddef.h>
5959

6060
#include "base_alloc.h"
61-
#include "base_alloc_linear.h"
61+
#include "base_alloc_global.h"
6262
#include "critnib.h"
6363
#include "utils_common.h"
6464
#include "utils_concurrency.h"
@@ -130,7 +130,6 @@ struct critnib {
130130

131131
struct os_mutex_t mutex; /* writes/removes */
132132

133-
umf_ba_linear_pool_t *pool_linear;
134133
umf_ba_pool_t *pool_nodes;
135134
umf_ba_pool_t *pool_leaves;
136135
};
@@ -182,23 +181,14 @@ static inline unsigned slice_index(word key, sh_t shift) {
182181
* critnib_new -- allocates a new critnib structure
183182
*/
184183
struct critnib *critnib_new(void) {
185-
umf_ba_linear_pool_t *pool_linear =
186-
umf_ba_linear_create(0 /* minimal pool size */);
187-
if (!pool_linear) {
188-
return NULL;
189-
}
190-
191-
struct critnib *c =
192-
umf_ba_linear_alloc(pool_linear, sizeof(struct critnib));
184+
struct critnib *c = umf_ba_global_alloc(sizeof(struct critnib));
193185
if (!c) {
194-
goto err_destroy_pool_linear;
186+
return NULL;
195187
}
196188

197-
c->pool_linear = pool_linear;
198-
199189
void *mutex_ptr = util_mutex_init(&c->mutex);
200190
if (!mutex_ptr) {
201-
goto err_destroy_pool_linear;
191+
goto err_free_critnib;
202192
}
203193

204194
c->pool_nodes = umf_ba_create(sizeof(struct critnib_node));
@@ -220,8 +210,8 @@ struct critnib *critnib_new(void) {
220210
umf_ba_destroy(c->pool_nodes);
221211
err_util_mutex_destroy:
222212
util_mutex_destroy_not_free(&c->mutex);
223-
err_destroy_pool_linear:
224-
umf_ba_linear_destroy(pool_linear); // free all its allocations and destroy
213+
err_free_critnib:
214+
umf_ba_global_free(c, sizeof(struct critnib));
225215
return NULL;
226216
}
227217

@@ -272,10 +262,7 @@ void critnib_delete(struct critnib *c) {
272262

273263
umf_ba_destroy(c->pool_nodes);
274264
umf_ba_destroy(c->pool_leaves);
275-
umf_ba_linear_destroy(
276-
c->pool_linear); // free all its allocations and destroy
277-
278-
// 'c' was freed in umf_ba_linear_destroy(c->pool_linear)
265+
umf_ba_global_free(c, sizeof(struct critnib));
279266
}
280267

281268
/*

0 commit comments

Comments
 (0)