From 83bf26c44f20a65c1a07e1fcb59649540a3c2193 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Sun, 2 Jan 2005 18:50:53 +0000 Subject: [PATCH] Allow ISAMB_PTR_CODEC=0 to work --- isamb/isamb.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/isamb/isamb.c b/isamb/isamb.c index d72a505..72bb842 100644 --- a/isamb/isamb.c +++ b/isamb/isamb.c @@ -1,5 +1,5 @@ -/* $Id: isamb.c,v 1.62 2004-12-13 20:51:31 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 +/* $Id: isamb.c,v 1.63 2005-01-02 18:50:53 adam Exp $ + Copyright (C) 1995-2005 Index Data Aps This file is part of the Zebra server. @@ -205,10 +205,14 @@ ISAMB isamb_open (BFiles bfs, const char *name, int writeflag, ISAMC_M *method, isamb->file[i].head.first_block = ISAMB_CACHE_ENTRY_SIZE/b_size+1; isamb->file[i].head.last_block = isamb->file[i].head.first_block; isamb->file[i].head.block_size = b_size; +#if ISAMB_PTR_CODEC if (i == isamb->no_cat-1 || b_size > 128) isamb->file[i].head.block_offset = 8; else isamb->file[i].head.block_offset = 4; +#else + isamb->file[i].head.block_offset = 11; +#endif isamb->file[i].head.block_max = b_size - isamb->file[i].head.block_offset; isamb->file[i].head.free_list = 0; @@ -1129,6 +1133,8 @@ ISAMB_PP isamb_pp_open_x (ISAMB isamb, ISAMB_P pos, int *level, int scope) ISAMB_PP pp = xmalloc (sizeof(*pp)); int i; + assert(pos); + pp->isamb = isamb; pp->block = xmalloc (ISAMB_MAX_LEVEL * sizeof(*pp->block)); @@ -1152,8 +1158,6 @@ ISAMB_PP isamb_pp_open_x (ISAMB isamb, ISAMB_P pos, int *level, int scope) pp->no_blocks++; if (p->leaf) break; - - decode_ptr (&src, &pos); p->offset = src - p->bytes; pp->level++; -- 1.7.10.4