Improved memory debugging for xmalloc/nmem.c. References to NMEM
authorAdam Dickmeiss <adam@indexdata.dk>
Fri, 31 Oct 1997 12:20:07 +0000 (12:20 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Fri, 31 Oct 1997 12:20:07 +0000 (12:20 +0000)
instead of ODR in n ESPEC-1 handling in source d1_espec.c.
Bug fix: missing fclose in data1_read_espec1.

16 files changed:
client/client.c
include/data1.h
include/nmem.h
include/prt.h
include/tpath.h
include/wrbuf.h
include/xmalloc.h
odr/odr.c
odr/odr_util.c
retrieval/d1_absyn.c
retrieval/d1_espec.c
server/statserv.c
util/Makefile
util/nmem.c
util/xmalloc.c
yaz.dsp

index dbf4c7a..16a6175 100644 (file)
@@ -4,7 +4,12 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
- * Revision 1.54  1997-10-27 13:52:46  adam
+ * Revision 1.55  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.54  1997/10/27 13:52:46  adam
  * Header yaz-util includes all YAZ utility header files.
  *
  * Revision 1.53  1997/09/29 13:18:59  adam
@@ -672,7 +677,6 @@ static int send_searchRequest(char *arg)
         mediumSetPresentNumber > 0))
     {
         oident prefsyn;
-        int oid[OID_SIZE];
 
         prefsyn.proto = protocol;
         prefsyn.oclass = CLASS_RECSYN;
index e2d0d20..f6e6448 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: data1.h,v $
- * Revision 1.29  1997-10-27 13:54:18  adam
+ * Revision 1.30  1997-10-31 12:20:07  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.29  1997/10/27 13:54:18  adam
  * Changed structure field in data1 node to be simple string which
  * is "unknown" to the retrieval system itself.
  *
@@ -433,8 +438,7 @@ YAZ_EXPORT data1_varset *data1_read_varset(data1_handle dh, const char *file);
 YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_handle dh,
                                               data1_varset *set,
                                               char *zclass, char *type);
-YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file,
-                                      ODR o);
+YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file);
 YAZ_EXPORT int data1_doespec1(data1_handle dh, data1_node *n, Z_Espec1 *e);
 YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_handle dh, 
                                               data1_absyn *a, char *name);
index 8713375..bd3581a 100644 (file)
  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
  * OF THIS SOFTWARE.
  *
- * $log$
+ * $Log: nmem.h,v $
+ * Revision 1.7  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
  */
 
 #ifndef NMEM_H
 #define NMEM_H
 #include <yconfig.h>
+
+#define NMEM_DEBUG 0
+
+#ifndef NMEM_DEBUG
+#define NMEM_DEBUG 0
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -53,9 +65,21 @@ typedef struct nmem_control *NMEM;
 YAZ_EXPORT void nmem_reset(NMEM n);
 YAZ_EXPORT void *nmem_malloc(NMEM n, int size);
 YAZ_EXPORT int nmem_total(NMEM n);
+YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src);
+
+#if NMEM_DEBUG
+
+YAZ_EXPORT NMEM nmem_create_f(const char *file, int line);
+YAZ_EXPORT void nmem_destroy_f(const char *file, int line, NMEM n);
+#define nmem_create() nmem_create_f(__FILE__, __LINE__)
+#define nmem_destroy(x) nmem_destroy_f(__FILE__, __LINE__, (x))
+
+#else
+
 YAZ_EXPORT NMEM nmem_create(void);
 YAZ_EXPORT void nmem_destroy(NMEM n);
-YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src);
+
+#endif
 
 YAZ_EXPORT void nmem_init (void);
 YAZ_EXPORT void nmem_exit (void);
index 20187e8..89ca6e0 100644 (file)
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 1995-1997, Index Data
+ * See the file LICENSE for details.
+ * Sebastian Hammer, Adam Dickmeiss
+ *
+ * $Log: prt.h,v $
+ * Revision 1.21  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ */
+
 #ifndef PRT_H
 #define PRT_H
 
@@ -46,6 +59,7 @@ YAZ_EXPORT int completeBER(unsigned char *buf, int len);
 YAZ_EXPORT void odr_begin(ODR o);
 YAZ_EXPORT void odr_end(ODR o);
 YAZ_EXPORT Odr_oid *odr_oiddup(ODR odr, Odr_oid *o);
+YAZ_EXPORT Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o);
 YAZ_EXPORT int odr_grow_block(odr_ecblock *b, int min_bytes);
 YAZ_EXPORT int odr_write(ODR o, unsigned char *buf, int bytes);
 YAZ_EXPORT int odr_seek(ODR o, int whence, int offset);
@@ -55,6 +69,7 @@ YAZ_EXPORT void odr_choice_enable_bias(ODR o, int mode);
 YAZ_EXPORT int odr_total(ODR o);
 YAZ_EXPORT char *odr_errmsg(int n);
 YAZ_EXPORT Odr_oid *odr_getoidbystr(ODR o, char *str);
+YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, char *str);
 YAZ_EXPORT int odr_initmember(ODR o, void *p, int size);
 YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons);
 YAZ_EXPORT void odr_setlenlen(ODR o, int len);
index 2ddfc10..2c9b7c1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1997, Index Data.
  *
  * Permission to use, copy, modify, distribute, and sell this software and
  * its documentation, in whole or in part, for any purpose, is hereby granted,
  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
  * OF THIS SOFTWARE.
  *
+ * $Log: tpath.h,v $
+ * Revision 1.4  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
  */
 
 #ifndef TPATH_H
 #define TPATH_H
 
+#include <yconfig.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-FILE *yaz_path_fopen(const char *path, const char *name, const char *mode);
+YAZ_EXPORT FILE *yaz_path_fopen(const char *path,
+                               const char *name, const char *mode);
 
 #ifdef __cplusplus
 }
index 70e5d48..3a699bc 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: wrbuf.h,v $
- * Revision 1.5  1997-09-17 12:10:32  adam
+ * Revision 1.6  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.5  1997/09/17 12:10:32  adam
  * YAZ version 1.4.
  *
  */
@@ -45,11 +50,11 @@ typedef struct wrbuf
     int size;
 } wrbuf, *WRBUF;
 
-WRBUF wrbuf_alloc(void);
-void wrbuf_free(WRBUF b, int free_buf);
-void wrbuf_rewind(WRBUF b);
-int wrbuf_grow(WRBUF b, int minsize);
-int wrbuf_write(WRBUF b, char *buf, int size);
+YAZ_EXPORT WRBUF wrbuf_alloc(void);
+YAZ_EXPORT void wrbuf_free(WRBUF b, int free_buf);
+YAZ_EXPORT void wrbuf_rewind(WRBUF b);
+YAZ_EXPORT int wrbuf_grow(WRBUF b, int minsize);
+YAZ_EXPORT int wrbuf_write(WRBUF b, char *buf, int size);
 
 #define wrbuf_len(b) ((b)->pos)
 #define wrbuf_buf(b) ((b)->buf)
index a8ea211..0c7df51 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: xmalloc.h,v $
- * Revision 1.3  1997-09-01 08:49:54  adam
+ * Revision 1.4  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.3  1997/09/01 08:49:54  adam
  * New windows NT/95 port using MSV5.0. To export DLL functions the
  * YAZ_EXPORT modifier was added. Defined in yconfig.h.
  *
 
 #include <yconfig.h>
 
+#define TRACE_XMALLOC 0
+
+#ifndef TRACE_XMALLOC
+#define TRACE_XMALLOC 0
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
index 1dbbda6..efded18 100644 (file)
--- a/odr/odr.c
+++ b/odr/odr.c
@@ -1,10 +1,15 @@
 /*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1997, Index Data
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: odr.c,v $
- * Revision 1.24  1997-09-01 08:51:07  adam
+ * Revision 1.25  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.24  1997/09/01 08:51:07  adam
  * New windows NT/95 port using MSV5.0. Had to avoid a few static
  * variables used in function ber_tag. These are now part of the
  * ODR structure.
@@ -127,10 +132,14 @@ void odr_setprint(ODR o, FILE *file)
     o->print = file;
 }
 
+#include <log.h>
+
 ODR odr_createmem(int direction)
 {
     struct odr *r;
 
+
+    logf (LOG_DEBUG, "odr_createmem dir=%d", direction);
     if (!(r = xmalloc(sizeof(*r))))
         return 0;
     r->direction = direction;
@@ -170,7 +179,7 @@ void odr_destroy(ODR o)
        xfree(o->ecb.buf);
     if (o->print != stderr)
         fclose(o->print);
-   xfree(o);
+    xfree(o);
 }
 
 void odr_setbuf(ODR o, char *buf, int len, int can_grow)
index cfa28cc..0cee539 100644 (file)
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 1995-1997, Index Data
+ * See the file LICENSE for details.
+ * Sebastian Hammer, Adam Dickmeiss
+ *
+ * $Log: odr_util.c,v $
+ * Revision 1.12  1997-10-31 12:20:08  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ */
+
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
@@ -35,19 +48,24 @@ int odp_more_chunks(ODR o, unsigned char *base, int len)
         return o->bp - base < len;
 }
 
-Odr_oid *odr_oiddup(ODR odr, Odr_oid *o)
+Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o)
 {
     Odr_oid *r;
 
     if (!o)
        return 0;
-    if (!(r = odr_malloc(odr, (oid_oidlen(o) + 1) * sizeof(int))))
+    if (!(r = nmem_malloc(nmem, (oid_oidlen(o) + 1) * sizeof(int))))
        return 0;
     oid_oidcpy(r, o);
     return r;
 }
 
-Odr_oid *odr_getoidbystr(ODR o, char *str)
+Odr_oid *odr_oiddup(ODR odr, Odr_oid *o)
+{
+    return odr_oiddup_nmem (odr->mem, o);
+}
+
+Odr_oid *odr_getoidbystr_nmem(NMEM nmem, char *str)
 {
     int num = 1, i = 0;
     char *p = str;
@@ -57,7 +75,7 @@ Odr_oid *odr_getoidbystr(ODR o, char *str)
        return 0;
     while ((p = strchr(p, '.')))
        num++, p++;
-    ret = odr_malloc(o, sizeof(*ret)*(num + 1));
+    ret = nmem_malloc(nmem, sizeof(*ret)*(num + 1));
     p = str;
     do
        ret[i++] = atoi(p);
@@ -65,3 +83,9 @@ Odr_oid *odr_getoidbystr(ODR o, char *str)
     ret[i] = -1;
     return ret;
 }
+
+Odr_oid *odr_getoidbystr(ODR o, char *str)
+{
+    return odr_getoidbystr_nmem (o->mem, str);
+}
+
index 3262dec..c8479a4 100644 (file)
@@ -4,7 +4,12 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: d1_absyn.c,v $
- * Revision 1.13  1997-10-27 13:54:18  adam
+ * Revision 1.14  1997-10-31 12:20:09  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.13  1997/10/27 13:54:18  adam
  * Changed structure field in data1 node to be simple string which
  * is "unknown" to the retrieval system itself.
  *
@@ -162,6 +167,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
     data1_termlist *all = 0;
     int level = 0;
 
+    logf (LOG_DEBUG, "begin data1_read_absyn file=%s", file);
     if (!(f = yaz_path_fopen(data1_get_tabpath (dh), file, "r")))
     {
        logf(LOG_WARN|LOG_ERRNO, "%s", file);
@@ -194,10 +200,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
                break;
        }
        if (!r)
-       {
-           fclose(f);
-           return res;
-       }
+            break;
        if (sscanf(r, "%s %[^\n]", cmd, args) < 2)
            *args = '\0';
        if (!strcmp(cmd, "elm"))
@@ -267,7 +270,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
                    new_element->tag = nmem_malloc(data1_nmem_get (dh),
                                                   sizeof(*new_element->tag));
                nt->which = DATA1T_string;
-               nt->value.string = xstrdup(p);
+               nt->value.string = nmem_strdup(data1_nmem_get (dh), p);
                nt->names = nmem_malloc(data1_nmem_get(dh), 
                                        sizeof(*new_element->tag->names));
                nt->names->name = nt->value.string;
@@ -334,7 +337,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
                *tp = all; /* append any ALL entries to the list */
            }
 
-           new_element->name = xstrdup(name);
+           new_element->name = nmem_strdup(data1_nmem_get (dh), name);
        }
        else if (!strcmp(cmd, "all"))
        {
@@ -485,7 +488,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
            (*esetpp)->next = 0;
            if (*fname == '@')
                (*esetpp)->spec = 0;
-           else if (!((*esetpp)->spec = data1_read_espec1 (dh, fname, 0)))
+           else if (!((*esetpp)->spec = data1_read_espec1 (dh, fname)))
            {
                logf(LOG_WARN, "%s: Espec-1 read failed", file);
                fclose(f);
@@ -534,4 +537,7 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file)
            return 0;
        }
     }
+    fclose(f);
+    logf (LOG_DEBUG, "end data1_read_absyn file=%s", file);
+    return res;
 }
index 0f36614..0a02536 100644 (file)
@@ -4,7 +4,12 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: d1_espec.c,v $
- * Revision 1.11  1997-09-29 13:18:59  adam
+ * Revision 1.12  1997-10-31 12:20:09  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.11  1997/09/29 13:18:59  adam
  * Added function, oid_ent_to_oid, to replace the function
  * oid_getoidbyent, which is not thread safe.
  *
@@ -46,7 +51,6 @@
 #include <assert.h>
 #include <string.h>
 #include <ctype.h>
-#include <xmalloc.h>
 #include <odr.h>
 #include <proto.h>
 #include <log.h>
@@ -54,9 +58,9 @@
 #include <tpath.h>
 #include <data1.h>
 
-static Z_Variant *read_variant(int argc, char **argv, ODR o)
+static Z_Variant *read_variant(int argc, char **argv, NMEM nmem)
 {
-    Z_Variant *r = odr_malloc(o, sizeof(*r));
+    Z_Variant *r = nmem_malloc(nmem, sizeof(*r));
     oident var1;
     int i;
     int oid[OID_SIZE];
@@ -64,10 +68,10 @@ static Z_Variant *read_variant(int argc, char **argv, ODR o)
     var1.proto = PROTO_Z3950;
     var1.oclass = CLASS_VARSET;
     var1.value = VAL_VAR1;
-    r->globalVariantSetId = odr_oiddup(o, oid_ent_to_oid(&var1, oid));
+    r->globalVariantSetId = odr_oiddup_nmem(nmem, oid_ent_to_oid(&var1, oid));
 
     if (argc)
-       r->triples = odr_malloc(o, sizeof(Z_Triple*) * argc);
+       r->triples = nmem_malloc(nmem, sizeof(Z_Triple*) * argc);
     else
        r->triples = 0;
     r->num_triples = argc;
@@ -83,11 +87,11 @@ static Z_Variant *read_variant(int argc, char **argv, ODR o)
                argv[i]);
            return 0;
        }
-       t = r->triples[i] = odr_malloc(o, sizeof(Z_Triple));
+       t = r->triples[i] = nmem_malloc(nmem, sizeof(Z_Triple));
        t->variantSetId = 0;
-       t->zclass = odr_malloc(o, sizeof(int));
+       t->zclass = nmem_malloc(nmem, sizeof(int));
        *t->zclass = zclass;
-       t->type = odr_malloc(o, sizeof(int));
+       t->type = nmem_malloc(nmem, sizeof(int));
        *t->type = type;
        /*
         * This is wrong.. we gotta look up the correct type for the
@@ -101,29 +105,29 @@ static Z_Variant *read_variant(int argc, char **argv, ODR o)
        else if (isdigit(*value))
        {
            t->which = Z_Triple_integer;
-           t->value.integer = odr_malloc(o, sizeof(*t->value.integer));
+           t->value.integer = nmem_malloc(nmem, sizeof(*t->value.integer));
            *t->value.integer = atoi(value);
        }
        else
        {
            t->which = Z_Triple_internationalString;
-           t->value.internationalString = odr_malloc(o, strlen(value)+1);
+           t->value.internationalString = nmem_malloc(nmem, strlen(value)+1);
            strcpy(t->value.internationalString, value);
        }
     }
     return r;
 }
 
-static Z_Occurrences *read_occurrences(char *occ, ODR o)
+static Z_Occurrences *read_occurrences(char *occ, NMEM nmem)
 {
-    Z_Occurrences *op = odr_malloc(o, sizeof(*op));
+    Z_Occurrences *op = nmem_malloc(nmem, sizeof(*op));
     char *p;
 
     if (!occ)
     {
        op->which = Z_Occurrences_values;
-       op->u.values = odr_malloc(o, sizeof(Z_OccurValues));
-       op->u.values->start = odr_malloc(o, sizeof(int));
+       op->u.values = nmem_malloc(nmem, sizeof(Z_OccurValues));
+       op->u.values->start = nmem_malloc(nmem, sizeof(int));
        *op->u.values->start = 1;
        op->u.values->howMany = 0;
     }
@@ -139,7 +143,7 @@ static Z_Occurrences *read_occurrences(char *occ, ODR o)
     }
     else
     {
-       Z_OccurValues *ov = odr_malloc(o, sizeof(*ov));
+       Z_OccurValues *ov = nmem_malloc(nmem, sizeof(*ov));
 
        if (!isdigit(*occ))
        {
@@ -148,11 +152,11 @@ static Z_Occurrences *read_occurrences(char *occ, ODR o)
        }
        op->which = Z_Occurrences_values;
        op->u.values = ov;
-       ov->start = odr_malloc(o, sizeof(*ov->start));
+       ov->start = nmem_malloc(nmem, sizeof(*ov->start));
        *ov->start = atoi(occ);
        if ((p = strchr(occ, '+')))
        {
-           ov->howMany = odr_malloc(o, sizeof(*ov->howMany));
+           ov->howMany = nmem_malloc(nmem, sizeof(*ov->howMany));
            *ov->howMany = atoi(p + 1);
        }
        else
@@ -162,9 +166,9 @@ static Z_Occurrences *read_occurrences(char *occ, ODR o)
 }
 
 
-static Z_ETagUnit *read_tagunit(char *buf, ODR o)
+static Z_ETagUnit *read_tagunit(char *buf, NMEM nmem)
 {
-    Z_ETagUnit *u = odr_malloc(o, sizeof(*u));
+    Z_ETagUnit *u = nmem_malloc(nmem, sizeof(*u));
     int terms;
     int type;
     char value[512], occ[512];
@@ -178,9 +182,9 @@ static Z_ETagUnit *read_tagunit(char *buf, ODR o)
     {
        u->which = Z_ETagUnit_wildThing;
        if (buf[1] == ':')
-           u->u.wildThing = read_occurrences(buf+2, o);
+           u->u.wildThing = read_occurrences(buf+2, nmem);
        else
-           u->u.wildThing = read_occurrences(0, o);
+           u->u.wildThing = read_occurrences(0, nmem);
     }
     else if ((terms = sscanf(buf, "(%d,%[^)]):%[a-z0-9+]", &type, value,
        occ)) >= 2)
@@ -196,24 +200,24 @@ static Z_ETagUnit *read_tagunit(char *buf, ODR o)
            force_string = 1;
        }
        u->which = Z_ETagUnit_specificTag;
-       u->u.specificTag = t = odr_malloc(o, sizeof(*t));
-       t->tagType = odr_malloc(o, sizeof(*t->tagType));
+       u->u.specificTag = t = nmem_malloc(nmem, sizeof(*t));
+       t->tagType = nmem_malloc(nmem, sizeof(*t->tagType));
        *t->tagType = type;
-       t->tagValue = odr_malloc(o, sizeof(*t->tagValue));
+       t->tagValue = nmem_malloc(nmem, sizeof(*t->tagValue));
        if (!force_string && (numval = atoi(valp)))
        {
            t->tagValue->which = Z_StringOrNumeric_numeric;
-           t->tagValue->u.numeric = odr_malloc(o, sizeof(int));
+           t->tagValue->u.numeric = nmem_malloc(nmem, sizeof(int));
            *t->tagValue->u.numeric = numval;
        }
        else
        {
            t->tagValue->which = Z_StringOrNumeric_string;
-           t->tagValue->u.string = odr_malloc(o, strlen(valp)+1);
+           t->tagValue->u.string = nmem_malloc(nmem, strlen(valp)+1);
            strcpy(t->tagValue->u.string, valp);
        }
        if (terms > 2) /* an occurrences-spec exists */
-           t->occurrences = read_occurrences(occ, o);
+           t->occurrences = read_occurrences(occ, nmem);
        else
            t->occurrences = 0;
     }
@@ -222,14 +226,15 @@ static Z_ETagUnit *read_tagunit(char *buf, ODR o)
 
 /*
  * Read an element-set specification from a file.
- * NOTE: If !o, memory is allocated directly from the heap by odr_malloc().
+ * NOTE: If !o, memory is allocated directly from the heap by nmem_malloc().
  */
-Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
+Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file)
 {
     FILE *f;
+    NMEM nmem = data1_nmem_get (dh);
     int argc, size_esn = 0;
     char *argv[50], line[512];
-    Z_Espec1 *res = odr_malloc(o, sizeof(*res));
+    Z_Espec1 *res = nmem_malloc(nmem, sizeof(*res));
 
     if (!(f = yaz_path_fopen(data1_get_tabpath(dh), file, "r")))
     {
@@ -257,10 +262,11 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
                continue;
            }
 
-           res->elementSetNames = odr_malloc(o, sizeof(char**)*nnames);
+           res->elementSetNames = nmem_malloc(nmem, sizeof(char**)*nnames);
            for (i = 0; i < nnames; i++)
            {
-               res->elementSetNames[i] = odr_malloc(o, strlen(argv[i+1])+1);
+               res->elementSetNames[i] = nmem_malloc(nmem,
+                                                      strlen(argv[i+1])+1);
                strcpy(res->elementSetNames[i], argv[i+1]);
            }
            res->num_elementSetNames = nnames;
@@ -268,7 +274,7 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
        else if (!strcmp(argv[0], "defaultvariantsetid"))
        {
            if (argc != 2 || !(res->defaultVariantSetId =
-               odr_getoidbystr(o, argv[1])))
+               odr_getoidbystr_nmem(nmem, argv[1])))
            {
                logf(LOG_WARN, "%s: Bad defaultvariantsetid directive", file);
                continue;
@@ -281,12 +287,13 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
                logf(LOG_WARN, "%s: Bad defaulttagtype directive", file);
                continue;
            }
-           res->defaultTagType = odr_malloc(o, sizeof(int));
+           res->defaultTagType = nmem_malloc(nmem, sizeof(int));
            *res->defaultTagType = atoi(argv[1]);
        }
        else if (!strcmp(argv[0], "defaultvariantrequest"))
        {
-           if (!(res->defaultVariantRequest = read_variant(argc-1, argv+1, o)))
+           if (!(res->defaultVariantRequest = read_variant(argc-1,
+                                                            argv+1, nmem)))
            {
                logf(LOG_WARN, "%s: Bad defaultvariantrequest", file);
                continue;
@@ -302,20 +309,13 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
            int num, i = 0;
            
            if (!res->elements)
-               res->elements = odr_malloc(o, size_esn = 24*sizeof(er));
+               res->elements = nmem_malloc(nmem, size_esn = 24*sizeof(er));
            else if (res->num_elements >= (int) (size_esn/sizeof(er)))
            {
+               Z_ElementRequest **oe = res->elements;
                size_esn *= 2;
-               if (o)
-               {
-                   Z_ElementRequest **oe = res->elements;
-                   
-                   res->elements = odr_malloc (o, size_esn*sizeof(er));
-                   memcpy (res->elements, oe, size_esn/2);
-               }
-               else
-                   res->elements =
-                       xrealloc(res->elements, size_esn*sizeof(er));
+               res->elements = nmem_malloc (nmem, size_esn*sizeof(er));
+               memcpy (res->elements, oe, size_esn/2);
            }
            if (argc < 2)
            {
@@ -324,18 +324,18 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
            }
            
            res->elements[res->num_elements++] = er =
-               odr_malloc(o, sizeof(*er));
+               nmem_malloc(nmem, sizeof(*er));
            er->which = Z_ERequest_simpleElement;
-           er->u.simpleElement = se = odr_malloc(o, sizeof(*se));
+           er->u.simpleElement = se = nmem_malloc(nmem, sizeof(*se));
            se->variantRequest = 0;
-           se->path = tp = odr_malloc(o, sizeof(*tp));
+           se->path = tp = nmem_malloc(nmem, sizeof(*tp));
            tp->num_tags = 0;
            /*
             * Parse the element selector.
             */
            for (num = 1, ep = path; (ep = strchr(ep, '/')); num++, ep++)
                ;
-           tp->tags = odr_malloc(o, sizeof(Z_ETagUnit*)*num);
+           tp->tags = nmem_malloc(nmem, sizeof(Z_ETagUnit*)*num);
            
            for ((ep = strchr(path, '/')) ; path ;
                 (void)((path = ep) && (ep = strchr(path, '/'))))
@@ -344,11 +344,11 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
                    ep++;
                
                assert(i<num);
-               tp->tags[tp->num_tags++] = read_tagunit(path, o);
+               tp->tags[tp->num_tags++] = read_tagunit(path, nmem);
            }
            
            if (argc > 2 && !strcmp(argv[2], "variant"))
-               se->variantRequest= read_variant(argc-3, argv+3, o);
+               se->variantRequest= read_variant(argc-3, argv+3, nmem);
        }
        else
        {
@@ -356,6 +356,6 @@ Z_Espec1 *data1_read_espec1 (data1_handle dh, const char *file, ODR o)
            fclose(f);
            return 0;
        }
-
+    fclose (f);
     return res;
 }
index e777879..ec506a5 100644 (file)
@@ -7,7 +7,12 @@
  *   Chas Woodfield, Fretwell Downing Datasystem.
  *
  * $Log: statserv.c,v $
- * Revision 1.42  1997-10-27 14:03:02  adam
+ * Revision 1.43  1997-10-31 12:20:09  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.42  1997/10/27 14:03:02  adam
  * Added new member to statserver_options_block, pre_init, which
  * specifies a callback to be invoked after command line parsing and
  * before the server listens for the first time.
@@ -399,10 +404,12 @@ static void listener(IOCHAN h, int event)
        }
        logf(LOG_DEBUG, "Setting timeout %d", control_block.idle_timeout);
        iochan_setdata(new_chan, newas);
-       iochan_settimeout(new_chan, control_block.idle_timeout * 60);
+       iochan_settimeout(new_chan, control_block.idle_timeout * 60);\r
+#ifndef WINDOWS
        logf(LOG_DEBUG, "Determining client address");
        a = cs_addrstr(new_line);
-       logf(LOG_LOG, "Accepted connection from %s", a ? a : "[Unknown]");
+       logf(LOG_LOG, "Accepted connection from %s", a ? a : "[Unknown]");\r
+#endif
     /* Now what we need todo is create a new thread with this iochan as
        the parameter */
     /* if (CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)event_loop, new_chan,
index 047e7cc..96a0d68 100644 (file)
@@ -1,14 +1,13 @@
 # Copyright (C) 1994-1997, Index Data I/S 
 # All rights reserved.
 # Sebastian Hammer, Adam Dickmeiss
-# $Id: Makefile,v 1.25 1997-10-27 14:04:21 adam Exp $
+# $Id: Makefile,v 1.26 1997-10-31 12:20:09 adam Exp $
 
 SHELL=/bin/sh
 INCLUDE=-I../include -I.
 LIBDIR=../lib
 LIBINCLUDE=-L$(LIBDIR)
 DEFS=$(INCLUDE) $(CDEFS)
-#DEFS=$(INCLUDE) $(CDEFS) -DTRACE_XMALLOC=1
 LIB=$(LIBDIR)/libutil.a
 LIBS=
 PO = options.o log.o marcdisp.o yaz-ccl.o pquery.o oid.o wrbuf.o nmemsdup.o \
index 0e4009f..ea9a9b8 100644 (file)
@@ -4,7 +4,12 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: nmem.c,v $
- * Revision 1.5  1997-10-06 09:09:52  adam
+ * Revision 1.6  1997-10-31 12:20:09  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.5  1997/10/06 09:09:52  adam
  * Function mmem_exit releases memory used by the freelists.
  *
  * Revision 1.4  1997/09/29 07:12:50  adam
@@ -30,6 +35,7 @@
 
 #include <xmalloc.h>
 #include <nmem.h>
+#include <log.h>
 #ifdef WINDOWS
 #include <windows.h>
 #endif
@@ -47,6 +53,7 @@ static CRITICAL_SECTION critical_section;
 
 static nmem_block *freelist = NULL;        /* "global" freelists */
 static nmem_control *cfreelist = NULL;
+static int nmem_active_no = 0;
 
 static void free_block(nmem_block *p)
 {  
@@ -127,32 +134,51 @@ int nmem_total(NMEM n)
     return n->total;
 }
 
+#if NMEM_DEBUG
+NMEM nmem_create_f(const char *file, int line)
+#else
 NMEM nmem_create(void)
+#endif
 {
     NMEM r;
     
     NMEM_ENTER;
+    nmem_active_no++;
     r = cfreelist;
     if (r)
        cfreelist = cfreelist->next;
     else
        r = xmalloc(sizeof(*r));
     NMEM_LEAVE;
+
+#if NMEM_DEBUG
+    logf (LOG_DEBUG, "%s:%d: nmem_create %d p=%p", file, line,
+                     nmem_active_no-1, r);
+#endif
     r->blocks = 0;
     r->total = 0;
     r->next = 0;
     return r;
 }
 
+#if NMEM_DEBUG
+void nmem_destroy_f(const char *file, int line, NMEM n)
+#else
 void nmem_destroy(NMEM n)
+#endif
 {
     if (!n)
        return;
     nmem_reset(n);
     NMEM_ENTER;
+    nmem_active_no--;
     n->next = cfreelist;
     cfreelist = n;
     NMEM_LEAVE;
+#if NMEM_DEBUG
+    logf (LOG_DEBUG, "%s:%d: nmem_destroy %d p=%p", file, line,
+                     nmem_active_no, n);
+#endif
 }
 
 void nmem_init (void)
@@ -160,6 +186,7 @@ void nmem_init (void)
 #ifdef WINDOWS
     InitializeCriticalSection(&critical_section);
 #endif
+    nmem_active_no = 0;
     freelist = NULL;
     cfreelist = NULL;
 }
index ce7852a..8fd0132 100644 (file)
@@ -4,7 +4,12 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: xmalloc.c,v $
- * Revision 1.4  1996-07-03 13:21:36  adam
+ * Revision 1.5  1997-10-31 12:20:09  adam
+ * Improved memory debugging for xmalloc/nmem.c. References to NMEM
+ * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
+ * Bug fix: missing fclose in data1_read_espec1.
+ *
+ * Revision 1.4  1996/07/03 13:21:36  adam
  * Function xfree_f checks for NULL pointer.
  *
  * Revision 1.3  1995/12/05  15:08:44  adam
@@ -48,8 +53,9 @@ void *xrealloc_f (void *o, size_t size, char *file, int line)
 {
     void *p = realloc (o, size);
 
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xrealloc(s=%d) %p -> %p\n", file, line, size, o, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG,
+            "%s:%d: xrealloc(s=%d) %p -> %p", file, line, size, o, p);
 #endif
     if (!p)
     {
@@ -63,8 +69,8 @@ void *xmalloc_f (size_t size, char *file, int line)
 {
     void *p = malloc (size);
 
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xmalloc(s=%d) %p\n", file, line, size, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xmalloc(s=%d) %p", file, line, size, p);
 #endif
     if (!p)
     {
@@ -77,8 +83,8 @@ void *xmalloc_f (size_t size, char *file, int line)
 void *xcalloc_f (size_t nmemb, size_t size, char *file, int line)
 {
     void *p = calloc (nmemb, size);
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xcalloc(s=%d) %p\n", file, line, size, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xcalloc(s=%d) %p", file, line, size, p);
 #endif
     if (!p)
     {
@@ -91,8 +97,8 @@ void *xcalloc_f (size_t nmemb, size_t size, char *file, int line)
 char *xstrdup_f (const char *s, char *file, int line)
 {
     char *p = xmalloc (strlen(s)+1);
-#ifdef TRACE_XMALLOC
-    fprintf(stderr, "%s:%d: xstrdup(s=%d) %p\n", file, line, strlen(s)+1, p);
+#if TRACE_XMALLOC
+    logf (LOG_DEBUG, "%s:%d: xstrdup(s=%d) %p", file, line, strlen(s)+1, p);
 #endif
     strcpy (p, s);
     return p;
@@ -103,9 +109,9 @@ void xfree_f(void *p, char *file, int line)
 {
     if (!p)
         return ;
-#ifdef TRACE_XMALLOC
+#if TRACE_XMALLOC
     if (p)
-        fprintf(stderr, "%s:%d: xfree %p\n", file, line, p);
+        logf (LOG_DEBUG, "%s:%d: xfree %p", file, line, p);
 #endif
     free(p);
 }
diff --git a/yaz.dsp b/yaz.dsp
index e85eeeb..4272ee1 100644 (file)
--- a/yaz.dsp
+++ b/yaz.dsp
@@ -62,7 +62,7 @@ TargetName=yaz
 SOURCE=$(InputPath)\r
 PostBuild_Desc=Copy Lib and Dll\r
 PostBuild_Cmds=copy $(OutDir)\$(TargetName).lib $(ProjDir)\lib copy\\r
-     $(OutDir)\$(TargetName).dll $(ProjDir)\lib\r
+      $(OutDir)\$(TargetName).dll $(ProjDir)\lib\r
 # End Special Build Tool\r
 \r
 !ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
@@ -99,7 +99,7 @@ TargetName=yaz
 SOURCE=$(InputPath)\r
 PostBuild_Desc=Copy Lib and Dll\r
 PostBuild_Cmds=copy $(OutDir)\$(TargetName).lib $(ProjDir)\lib copy\\r
-     $(OutDir)\$(TargetName).dll $(ProjDir)\lib\r
+      $(OutDir)\$(TargetName).dll $(ProjDir)\lib\r
 # End Special Build Tool\r
 \r
 !ENDIF \r
@@ -114,266 +114,98 @@ PostBuild_Cmds=copy $(OutDir)\$(TargetName).lib $(ProjDir)\lib   copy\
 # Begin Source File\r
 \r
 SOURCE=.\Util\atoin.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_any.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_bit.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_bool.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_int.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_len.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_null.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_oct.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_oid.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\ber_tag.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclerrms.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclfind.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclptree.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclqfile.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclqual.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\cclstr.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\ccl\ccltoken.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\comstack\comstack.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_absyn.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_attset.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_doespec.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_espec.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_expout.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_grs.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
@@ -382,167 +214,66 @@ SOURCE=.\retrieval\d1_handle.c
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_map.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_marc.c\r
+# End Source File\r
+# Begin Source File\r
 \r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
+SOURCE=.\retrieval\d1_prtree.c\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_read.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_soif.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_sumout.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_sutrs.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_tagset.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_varset.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\retrieval\d1_write.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\asn\diagbib1.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\dmalloc.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\dumpber.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\log.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
-# End Source File\r
-# Begin Source File\r
+# End Source File\r
+# Begin Source File\r
 \r
 SOURCE=.\util\marcdisp.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\nmem.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
@@ -551,442 +282,162 @@ SOURCE=.\util\nmemsdup.c
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_any.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_bit.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_bool.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_choice.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_cons.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_int.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_mem.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_null.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_oct.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_oid.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_priv.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_seq.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_tag.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_use.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\odr\odr_util.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\oid.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\options.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\pquery.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\asn\proto.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-acc.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-add.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-arc.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-dia.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-esp.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-exd.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-exp.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-ext.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-grs.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\asn\prt-rsc.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\query.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\readconf.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\comstack\tcpip.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\tpath.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\comstack\waislen.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\wrbuf.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\util\xmalloc.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\util\yaz-ccl.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=".\util\yaz-util.c"\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # Begin Source File\r
 \r
 SOURCE=.\asn\zget.c\r
-\r
-!IF  "$(CFG)" == "yaz - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "yaz - Win32 Debug"\r
-\r
-!ENDIF \r
-\r
 # End Source File\r
 # End Group\r
 # Begin Group "Header Files"\r