/*
- * Copyright (C) 1994-1995, Index Data I/S
+ * Copyright (C) 1994-1996, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: recindex.c,v $
- * Revision 1.14 1996-02-01 20:48:15 adam
+ * Revision 1.18 1997-07-15 16:28:42 adam
+ * Bug fix: storeData didn't work with files with multiple records.
+ * Bug fix: fixed memory management with records; not really well
+ * thought through.
+ *
+ * Revision 1.17 1997/02/12 20:39:46 adam
+ * Implemented options -f <n> that limits the log to the first <n>
+ * records.
+ * Changed some log messages also.
+ *
+ * Revision 1.16 1996/06/04 10:19:00 adam
+ * Minor changes - removed include of ctype.h.
+ *
+ * Revision 1.15 1996/05/13 14:23:06 adam
+ * Work on compaction of set/use bytes in dictionary.
+ *
+ * Revision 1.14 1996/02/01 20:48:15 adam
* The total size of records are always checked in rec_cache_insert to
* reduce memory usage.
*
#include <stdio.h>
#include <assert.h>
#include <string.h>
-#include <ctype.h>
#include "recindxp.h"
static void rec_tmp_expand (Records p, int size, int dst_type)
{
- if (p->tmp_size < size + 256 ||
+ if (p->tmp_size < size + 2048 ||
p->tmp_size < p->head.block_size[dst_type]*2)
{
xfree (p->tmp_buf);
- p->tmp_size = size + p->head.block_size[dst_type]*2 + 256;
+ p->tmp_size = size + p->head.block_size[dst_type]*2 + 2048;
p->tmp_buf = xmalloc (p->tmp_size);
}
}
assert (p);
rec = xmalloc (sizeof(*rec));
- if (p->head.index_free == 0)
+ if (1 || p->head.index_free == 0)
sysno = (p->head.index_last)++;
else
{
void rec_rm (Record *recpp)
{
int i;
+
+ if (!*recpp)
+ return ;
for (i = 0; i < REC_NO_INFO; i++)
xfree ((*recpp)->info[i]);
xfree (*recpp);