MFC r267426, r267464:

Avoid zeroing during allocation.

This change reverts a change from OpenBSD which made use of
calloc, and therefore wasted time initializing arrays that
will later be realloc'ed.

Consistently use FreeBSD's reallocf():
- Drop some bogus casts to size_t.
- The new_p_foo variables are not needed anymore.

Also merge the changes from OpenBSD's manpage
patch.1 Rev 1.27:
"patch was moved from user portability (UP) to base in issue 7
and is no longer optional"
This commit is contained in:
pfg 2014-06-21 01:48:45 +00:00
parent a63ff939c2
commit 56eadad6c5
2 changed files with 12 additions and 32 deletions

View File

@ -19,9 +19,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $OpenBSD: patch.1,v 1.26 2010/09/03 11:09:29 jmc Exp $
.\" $OpenBSD: patch.1,v 1.27 2014/04/15 06:26:54 jmc Exp $
.\" $FreeBSD$
.Dd January 29, 2013
.Dd June 12, 2014
.Dt PATCH 1
.Os
.Sh NAME
@ -639,13 +639,10 @@ The
.Nm
utility is compliant with the
.St -p1003.1-2008
specification
(except as detailed above for the
specification,
except as detailed above for the
.Fl -posix
option),
though the presence of
.Nm
itself is optional.
option.
.Pp
The flags
.Op Fl BCEFfstVvxz

View File

@ -132,11 +132,11 @@ void
set_hunkmax(void)
{
if (p_line == NULL)
p_line = calloc((size_t) hunkmax, sizeof(char *));
p_line = malloc(hunkmax * sizeof(char *));
if (p_len == NULL)
p_len = calloc((size_t) hunkmax, sizeof(short));
p_len = malloc(hunkmax * sizeof(short));
if (p_char == NULL)
p_char = calloc((size_t) hunkmax, sizeof(char));
p_char = malloc(hunkmax * sizeof(char));
}
/*
@ -145,31 +145,14 @@ set_hunkmax(void)
static void
grow_hunkmax(void)
{
int new_hunkmax;
char **new_p_line;
short *new_p_len;
char *new_p_char;
new_hunkmax = hunkmax * 2;
int new_hunkmax = hunkmax * 2;
if (p_line == NULL || p_len == NULL || p_char == NULL)
fatal("Internal memory allocation error\n");
new_p_line = realloc(p_line, new_hunkmax * sizeof(char *));
if (new_p_line == NULL)
free(p_line);
new_p_len = realloc(p_len, new_hunkmax * sizeof(short));
if (new_p_len == NULL)
free(p_len);
new_p_char = realloc(p_char, new_hunkmax * sizeof(char));
if (new_p_char == NULL)
free(p_char);
p_char = new_p_char;
p_len = new_p_len;
p_line = new_p_line;
p_line = reallocf(p_line, new_hunkmax * sizeof(char *));
p_len = reallocf(p_len, new_hunkmax * sizeof(short));
p_char = reallocf(p_char, new_hunkmax * sizeof(char));
if (p_line != NULL && p_len != NULL && p_char != NULL) {
hunkmax = new_hunkmax;