X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rset%2Frset.c;h=e0d1d8089c732add50f06552ffa9e08ade0b62bf;hb=3db15cf883ad80b6a4b0e960f3c3b59c86b59c6b;hp=b86b9817c1bbf2a7f395d0ca2a22ce2ce37cab25;hpb=e127268c91736bf5a116cbc24653da4b845ca046;p=idzebra-moved-to-github.git diff --git a/rset/rset.c b/rset/rset.c index b86b981..e0d1d80 100644 --- a/rset/rset.c +++ b/rset/rset.c @@ -1,10 +1,13 @@ /* - * Copyright (C) 1994-1995, Index Data I/S + * Copyright (C) 1994-1998, Index Data I/S * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: rset.c,v $ - * Revision 1.9 1996-10-29 13:55:21 adam + * Revision 1.10 1998-02-10 11:56:46 adam + * Implemented rset_dup. + * + * Revision 1.9 1996/10/29 13:55:21 adam * Include of zebrautl.h instead of alexutil.h. * * Revision 1.8 1995/12/11 09:15:23 adam @@ -53,12 +56,21 @@ RSET rset_create(const rset_control *sel, void *parms) rnew = xmalloc(sizeof(*rnew)); rnew->control = sel; rnew->flags = 0; + rnew->count = 1; rnew->buf = (*sel->f_create)(sel, parms, &rnew->flags); return rnew; } void rset_delete (RSET rs) { - (*rs->control->f_delete)(rs); + (rs->count)--; + if (!rs->count) + (*rs->control->f_delete)(rs); xfree(rs); } + +RSET rset_dup (RSET rs) +{ + (rs->count)++; + return rs; +}