Fix leak for rset_key_control
[idzebra-moved-to-github.git] / index / zebraapi.c
index db941d8..d419085 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.190 2005-10-20 18:28:10 quinn Exp $
+/* $Id: zebraapi.c,v 1.192 2005-10-28 07:25:30 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -113,6 +113,7 @@ ZebraHandle zebra_open(ZebraService zs, Res res)
     zh->res = 0; 
     zh->session_res = res_open(zs->global_res, res);
     zh->user_perm = 0;
+    zh->dbaccesslist = 0;
 
     zh->reg_name = xstrdup ("");
     zh->path_reg = 0;
@@ -325,9 +326,13 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
 
     reg->key_buf = 0;
 
+#if NEW_REC_KEYS
+    reg->keys = zebra_rec_keys_open();
+#else
     reg->keys.buf_max = 0;
     reg->keys.buf = 0;
     reg->keys.codec_handle = iscz1_start();
+#endif
 
     reg->sortKeys.buf = 0;
     reg->sortKeys.buf_max = 0;
@@ -496,6 +501,9 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg)
     data1_destroy (reg->dh);
 
     xfree(reg->sortKeys.buf);
+#if NEW_REC_KEYS
+    zebra_rec_keys_close(reg->keys);
+#else
     xfree(reg->keys.buf);
     if (reg->keys.codec_handle)
        iscz1_stop(reg->keys.codec_handle);
@@ -503,6 +511,8 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg)
     if (reg->sortKeys.codec_handle)
        iscz1_stop(reg->sortKeys.codec_handle);
 #endif
+#endif
+
     xfree(reg->key_buf);
     xfree(reg->name);
     xfree(reg);
@@ -554,8 +564,7 @@ ZEBRA_RES zebra_close (ZebraHandle zh)
 
     xfree(zh->record_encoding);
 
-    if (zh->dbaccesslist)
-       xfree(zh->dbaccesslist);
+    xfree(zh->dbaccesslist);
 
     for (i = 0; i < zh->num_basenames; i++)
         xfree(zh->basenames[i]);
@@ -1239,7 +1248,7 @@ ZEBRA_RES zebra_auth (ZebraHandle zh, const char *user, const char *pass)
     if (astring)
        zh->dbaccesslist = xstrdup(astring);
     else
-       zh->dbaccesslist = NULL;
+       zh->dbaccesslist = 0;
 
     /* users that don't require a password .. */
     if (zh->user_perm && strchr(zh->user_perm, 'a'))