From: niklas Date: Wed, 11 Dec 1996 22:36:14 +0000 (+0000) Subject: Remove dups from cfdata via marking algorithm X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=1bad526e97b49cfe54c70fc1016bfb02cb29d59c;p=openbsd Remove dups from cfdata via marking algorithm --- diff --git a/usr.sbin/config/pack.c b/usr.sbin/config/pack.c index bbac10d142a..41dde9b4f54 100644 --- a/usr.sbin/config/pack.c +++ b/usr.sbin/config/pack.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pack.c,v 1.6 1996/12/11 13:00:13 niklas Exp $ */ +/* $OpenBSD: pack.c,v 1.7 1996/12/11 22:36:14 niklas Exp $ */ /* $NetBSD: pack.c,v 1.5 1996/08/31 21:15:11 mycroft Exp $ */ /* @@ -176,9 +176,12 @@ packdevi() * For each instance of each attachment, add or collapse * all its aliases. */ - for (i = d->d_ihead; i != NULL; i = i->i_bsame) { + for (i = d->d_ihead; i != NULL; i = i->i_asame) { m = n; for (l = i; l != NULL; l = l->i_alias) { + /* Skip if we already handled this one. */ + if (l->i_cfindex >= 0) + continue; l->i_pvlen = 0; l->i_pvoff = -1; l->i_locoff = -1; diff --git a/usr.sbin/config/sem.c b/usr.sbin/config/sem.c index 99850be7c28..b4cb0486877 100644 --- a/usr.sbin/config/sem.c +++ b/usr.sbin/config/sem.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sem.c,v 1.6 1996/10/23 22:38:00 niklas Exp $ */ +/* $OpenBSD: sem.c,v 1.7 1996/12/11 22:36:15 niklas Exp $ */ /* $NetBSD: sem.c,v 1.9 1996/08/31 21:15:15 mycroft Exp $ */ /* @@ -725,6 +725,7 @@ newdevi(name, unit, d) i->i_atdeva = NULL; i->i_locs = NULL; i->i_cfflags = 0; + i->i_cfindex = -1; i->i_lineno = currentline(); if (unit >= d->d_umax) d->d_umax = unit + 1;