diff options
| author | joerg <joerg@NetBSD.org> | 2015-04-16 11:39:23 +0000 |
|---|---|---|
| committer | joerg <joerg@NetBSD.org> | 2015-04-16 11:39:23 +0000 |
| commit | 08f4e90141436e05cd296b75ff07a614c5aae34a (patch) | |
| tree | bf3f8e2aaa0719bf37d16ccae876142a1b228d83 /usr.bin/make | |
| parent | 699cba25887d70beeee5d83a73e6df92255096a0 (diff) | |
Don't use memcpy for overlapping ranges. Simplify, memmove is good
enough to skip empty ranges.
Diffstat (limited to 'usr.bin/make')
| -rw-r--r-- | usr.bin/make/job.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/usr.bin/make/job.c b/usr.bin/make/job.c index 8a8f6ef9234..6a005222936 100644 --- a/usr.bin/make/job.c +++ b/usr.bin/make/job.c @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.178 2015/04/09 18:21:01 sjg Exp $ */ +/* $NetBSD: job.c,v 1.179 2015/04/16 11:39:23 joerg Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: job.c,v 1.178 2015/04/09 18:21:01 sjg Exp $"; +static char rcsid[] = "$NetBSD: job.c,v 1.179 2015/04/16 11:39:23 joerg Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: job.c,v 1.178 2015/04/09 18:21:01 sjg Exp $"); +__RCSID("$NetBSD: job.c,v 1.179 2015/04/16 11:39:23 joerg Exp $"); #endif #endif /* not lint */ #endif @@ -1878,18 +1878,10 @@ end_loop: (void)fflush(stdout); } } - if (i < max - 1) { - /* shift the remaining characters down */ - (void)memcpy(job->outBuf, &job->outBuf[i + 1], max - (i + 1)); - job->curPos = max - (i + 1); - - } else { - /* - * We have written everything out, so we just start over - * from the start of the buffer. No copying. No nothing. - */ - job->curPos = 0; - } + assert(i < max); + /* shift the remaining characters down */ + (void)memmove(job->outBuf, &job->outBuf[i + 1], max - (i + 1)); + job->curPos = max - (i + 1); } if (finish) { /* |
