X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fnmem.c;h=f1fcb1ae5bace1280474d1ee601f0f0182b339df;hb=fe3ae86a97bef6a815e2f04cdcaa77307801c902;hp=4f2504e28d83b4a58856a715ed02932091aa5a75;hpb=fe575eb97799f141b6e97d17c0e64619c4a9cd03;p=yaz-moved-to-github.git diff --git a/src/nmem.c b/src/nmem.c index 4f2504e..f1fcb1a 100644 --- a/src/nmem.c +++ b/src/nmem.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: nmem.c,v 1.14 2005-01-21 09:23:27 adam Exp $ + * $Id: nmem.c,v 1.17 2005-06-03 20:33:13 adam Exp $ */ /** @@ -43,6 +43,21 @@ #define NMEM_CHUNK (4*1024) +struct nmem_block +{ + char *buf; /* memory allocated in this block */ + size_t size; /* size of buf */ + size_t top; /* top of buffer */ + struct nmem_block *next; +}; + +struct nmem_control +{ + int total; + nmem_block *blocks; + struct nmem_control *next; +}; + struct align { char x; union { @@ -94,12 +109,6 @@ struct nmem_mutex { YAZ_EXPORT void nmem_mutex_create(NMEM_MUTEX *p) { - if (!log_level_initialized) - { - log_level = yaz_log_module_level("nmem"); - log_level_initialized = 1; - } - if (!*p) { *p = (NMEM_MUTEX) malloc (sizeof(**p)); @@ -111,6 +120,12 @@ YAZ_EXPORT void nmem_mutex_create(NMEM_MUTEX *p) pth_mutex_init (&(*p)->m_handle); #endif } + if (!log_level_initialized) + { + log_level_initialized = 1; + log_level = yaz_log_module_level("nmem"); + } + } YAZ_EXPORT void nmem_mutex_enter(NMEM_MUTEX p)