=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/rcs.c,v retrieving revision 1.11 retrieving revision 1.12 diff -c -r1.11 -r1.12 *** src/usr.bin/cvs/rcs.c 2004/09/25 11:06:50 1.11 --- src/usr.bin/cvs/rcs.c 2004/09/27 14:36:15 1.12 *************** *** 1,4 **** ! /* $OpenBSD: rcs.c,v 1.11 2004/09/25 11:06:50 joris Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcs.c,v 1.12 2004/09/27 14:36:15 jfb Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 1377,1384 **** --- 1377,1390 ---- void rcs_freedelta(struct rcs_delta *rdp) { + struct rcs_branch *rb; struct rcs_delta *crdp; + if (rdp->rd_num != NULL) + rcsnum_free(rdp->rd_num); + if (rdp->rd_next != NULL) + rcsnum_free(rdp->rd_next); + if (rdp->rd_author != NULL) free(rdp->rd_author); if (rdp->rd_state != NULL) *************** *** 1387,1392 **** --- 1393,1404 ---- free(rdp->rd_log); if (rdp->rd_text != NULL) free(rdp->rd_text); + + while ((rb = TAILQ_FIRST(&(rdp->rd_branches))) != NULL) { + TAILQ_REMOVE(&(rdp->rd_branches), rb, rb_list); + rcsnum_free(rb->rb_num); + free(rb); + } while ((crdp = TAILQ_FIRST(&(rdp->rd_snodes))) != NULL) { TAILQ_REMOVE(&(rdp->rd_snodes), crdp, rd_list);