X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fnmem.c;h=5aaa6c11d3f76c1bb99c9d05f3a6df33fe832c7b;hp=93988b55b5db1f9f350e42745d409c0a561bb7a5;hb=0a479be82be90639f4e37c4ead12baca543e88bf;hpb=f0128dd11d08d79384a97a13e44476769b061f4f diff --git a/src/nmem.c b/src/nmem.c index 93988b5..5aaa6c1 100644 --- a/src/nmem.c +++ b/src/nmem.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ @@ -8,10 +8,8 @@ * \brief Implements Nibble Memory * * This is a simple and fairly wasteful little module for nibble memory - * allocation. Evemtually we'll put in something better. + * allocation. * - * FIXME - it also has some semaphore stuff, and stuff to handle errno. - * These should be moved to some other place! */ #if HAVE_CONFIG_H #include @@ -38,7 +36,7 @@ struct nmem_block struct nmem_control { - int total; + size_t total; struct nmem_block *blocks; struct nmem_control *next; }; @@ -64,11 +62,11 @@ static int log_level = 0; static int log_level_initialized = 0; static void free_block(struct nmem_block *p) -{ +{ xfree(p->buf); xfree(p); if (log_level) - yaz_log (log_level, "nmem free_block p=%p", p); + yaz_log(log_level, "nmem free_block p=%p", p); } /* @@ -80,15 +78,14 @@ static struct nmem_block *get_block(size_t size) size_t get = NMEM_CHUNK; if (log_level) - yaz_log (log_level, "nmem get_block size=%ld", (long) size); + yaz_log(log_level, "nmem get_block size=%ld", (long) size); - if (get < size) get = size; - if(log_level) - yaz_log (log_level, "nmem get_block alloc new block size=%ld", - (long) get); - + if (log_level) + yaz_log(log_level, "nmem get_block alloc new block size=%ld", + (long) get); + r = (struct nmem_block *) xmalloc(sizeof(*r)); r->buf = (char *)xmalloc(r->size = get); r->top = 0; @@ -98,8 +95,8 @@ static struct nmem_block *get_block(size_t size) void nmem_reset(NMEM n) { struct nmem_block *t; - - yaz_log (log_level, "nmem_reset p=%p", n); + + yaz_log(log_level, "nmem_reset p=%p", n); if (!n) return; while (n->blocks) @@ -111,15 +108,15 @@ void nmem_reset(NMEM n) n->total = 0; } -void *nmem_malloc(NMEM n, int size) +void *nmem_malloc(NMEM n, size_t size) { struct nmem_block *p; char *r; if (!n) { - yaz_log (YLOG_FATAL, "calling nmem_malloc with an null pointer"); - abort (); + yaz_log(YLOG_FATAL, "calling nmem_malloc with an null pointer"); + abort(); } p = n->blocks; if (!p || p->size < size + p->top) @@ -135,7 +132,7 @@ void *nmem_malloc(NMEM n, int size) return r; } -int nmem_total(NMEM n) +size_t nmem_total(NMEM n) { return n->total; } @@ -148,7 +145,7 @@ NMEM nmem_create(void) log_level = yaz_log_module_level("nmem"); log_level_initialized = 1; } - + r = (struct nmem_control *)xmalloc(sizeof(*r)); r->blocks = 0; @@ -162,12 +159,12 @@ void nmem_destroy(NMEM n) { if (!n) return; - + nmem_reset(n); xfree(n); } -void nmem_transfer (NMEM dst, NMEM src) +void nmem_transfer(NMEM dst, NMEM src) { struct nmem_block *t; while ((t = src->blocks))