svn commit: r267701 - stable/10/usr.bin/patch

Pedro F. Giffuni pfg at FreeBSD.org
Sat Jun 21 01:48:47 UTC 2014


Author: pfg
Date: Sat Jun 21 01:48:45 2014
New Revision: 267701
URL: http://svnweb.freebsd.org/changeset/base/267701

Log:
  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"

Modified:
  stable/10/usr.bin/patch/patch.1
  stable/10/usr.bin/patch/pch.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/patch/patch.1
==============================================================================
--- stable/10/usr.bin/patch/patch.1	Sat Jun 21 01:43:56 2014	(r267700)
+++ stable/10/usr.bin/patch/patch.1	Sat Jun 21 01:48:45 2014	(r267701)
@@ -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

Modified: stable/10/usr.bin/patch/pch.c
==============================================================================
--- stable/10/usr.bin/patch/pch.c	Sat Jun 21 01:43:56 2014	(r267700)
+++ stable/10/usr.bin/patch/pch.c	Sat Jun 21 01:48:45 2014	(r267701)
@@ -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;


More information about the svn-src-all mailing list