Module Name: src Committed By: rillig Date: Sat Nov 21 13:16:37 UTC 2020
Modified Files: src/usr.bin/make: suff.c Log Message: make(1): move reference counting for suffixes to SrcNew To generate a diff of this commit: cvs rdiff -u -r1.259 -r1.260 src/usr.bin/make/suff.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/suff.c diff -u src/usr.bin/make/suff.c:1.259 src/usr.bin/make/suff.c:1.260 --- src/usr.bin/make/suff.c:1.259 Sat Nov 21 13:11:13 2020 +++ src/usr.bin/make/suff.c Sat Nov 21 13:16:37 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: suff.c,v 1.259 2020/11/21 13:11:13 rillig Exp $ */ +/* $NetBSD: suff.c,v 1.260 2020/11/21 13:16:37 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -114,7 +114,7 @@ #include "dir.h" /* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */ -MAKE_RCSID("$NetBSD: suff.c,v 1.259 2020/11/21 13:11:13 rillig Exp $"); +MAKE_RCSID("$NetBSD: suff.c,v 1.260 2020/11/21 13:16:37 rillig Exp $"); #define SUFF_DEBUG0(text) DEBUG0(SUFF, text) #define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1) @@ -203,6 +203,13 @@ static Suff *emptySuff; static void SuffFindDeps(GNode *, SrcList *); static void SuffExpandWildcards(GNodeListNode *, GNode *); +static Suff * +SuffRef(Suff *suff) +{ + suff->refCount++; + return suff; +} + /* Change the value of a Suff variable, adjusting the reference counts. */ static void SuffReassign(Suff **var, Suff *suff) @@ -856,7 +863,7 @@ SrcNew(char *name, char *pref, Suff *suf src->file = name; src->pref = pref; - src->suff = suff; + src->suff = SuffRef(suff); src->parent = parent; src->node = gn; src->numChildren = 0; @@ -872,7 +879,6 @@ SuffAddSrc(Suff *suff, SrcList *srcList, const char *debug_tag MAKE_ATTR_UNUSED) { Src *s2 = SrcNew(srcName, targ->pref, suff, targ, NULL); - suff->refCount++; targ->numChildren++; Lst_Append(srcList, s2); #ifdef DEBUG_SRC @@ -1086,7 +1092,6 @@ SuffFindCmds(Src *targ, SrcList *slst) * again (ick)), and return the new structure. */ ret = SrcNew(bmake_strdup(sgn->name), targ->pref, suff, targ, sgn); - suff->refCount++; targ->numChildren++; #ifdef DEBUG_SRC debug_printf("3 add targ %p ret %p\n", targ, ret); @@ -1555,7 +1560,6 @@ SuffFindNormalDepsKnown(const char *name pref = bmake_strldup(name, (size_t)(nameLen - suff->nameLen)); targ = SrcNew(bmake_strdup(gn->name), pref, suff, NULL, gn); - suff->refCount++; /* * Add nodes from which the target can be made @@ -1582,7 +1586,6 @@ SuffFindNormalDepsUnknown(GNode *gn, con targ = SrcNew(bmake_strdup(gn->name), bmake_strdup(sopref), suffNull, NULL, gn); - targ->suff->refCount++; /* * Only use the default suffix rules if we don't have commands