/*
- * Copyright (C) 1994, Index Data I/S
+ * Copyright (C) 1994-1999, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: physical.c,v $
- * Revision 1.11 1996-03-20 13:29:17 quinn
+ * Revision 1.17 1999-11-30 13:48:04 adam
+ * Improved installation. Updated for inclusion of YAZ header files.
+ *
+ * Revision 1.16 1999/05/26 07:49:14 adam
+ * C++ compilation.
+ *
+ * Revision 1.15 1999/02/02 14:51:22 adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.14 1997/09/09 13:38:12 adam
+ * Partial port to WIN95/NT.
+ *
+ * Revision 1.13 1996/10/29 13:56:57 adam
+ * Include of zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.12 1996/03/20 16:17:11 quinn
+ * Bug hunting
+ *
+ * Revision 1.11 1996/03/20 13:29:17 quinn
* Bug-fix
*
* Revision 1.10 1996/03/19 19:22:44 quinn
#include <assert.h>
#include <stdio.h>
+#include <string.h>
+#include <yaz/log.h>
#include <isam.h>
static int is_freestore_alloc(ISAM is, int type)
/* extract header info */
buf->offset = 0;
memcpy(&block->num_records, buf->data, sizeof(block->num_records));
+ assert(block->num_records > 0);
buf->offset += sizeof(block->num_records);
memcpy(&block->nextpos, buf->data + buf->offset,
sizeof(block->nextpos));
}
logf (LOG_DEBUG, "W: Block #%d contains %d records.", p->diskpos,
p->num_records);
+ assert(p->num_records > 0);
for (b = p->data; b; b = b->next)
{
logf(LOG_DEBUG, " buf: offset %d, keys %d, type %d, ref %d",
static is_mbuf *mbuf_takehead(is_mbuf **mb, int *num, int keysize)
{
- is_mbuf *p = 0, **pp = &p, *new;
+ is_mbuf *p = 0, **pp = &p, *inew;
int toget = *num;
if (!toget)
}
if (toget > 0 && *mb)
{
- new = xmalloc_mbuf(IS_MBUF_TYPE_SMALL);
- new->next = (*mb)->next;
- (*mb)->next = new;
- new->data = (*mb)->data;
+ inew = xmalloc_mbuf(IS_MBUF_TYPE_SMALL);
+ inew->next = (*mb)->next;
+ (*mb)->next = inew;
+ inew->data = (*mb)->data;
(*mb)->refcount++;
- new->offset = (*mb)->offset + toget * keysize;
- new->num = (*mb)->num - toget;
+ inew->offset = (*mb)->offset + toget * keysize;
+ inew->num = (*mb)->num - toget;
(*mb)->num = toget;
*pp = *mb;
*mb = (*mb)->next;
*/
void is_p_align(is_mtable *tab)
{
- is_mblock *mblock, *new, *last = 0, *next;
+ is_mblock *mblock, *inew, *last = 0, *next;
is_mbuf *mbufs, *mbp;
int blocks, recsblock;
{
if (mbufs)
{
- new = xmalloc_mblock();
- new->diskpos = -1;
- new->state = IS_MBSTATE_DIRTY;
- new->next = mblock->next;
- mblock->next = new;
+ inew = xmalloc_mblock();
+ inew->diskpos = -1;
+ inew->state = IS_MBSTATE_DIRTY;
+ inew->next = mblock->next;
+ mblock->next = inew;
}
mblock->data = mbp;
mblock->num_records = recsblock;