This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch to eliminate bcopy from the java directory


This patch eliminates bcopy from the java directory.  I'd appreciate
it if the reviewer would double check whether the memcpy calls should
in fact be memmove instead.

Ok to install?

		--Kaveh


2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* constants.c (PUTN): Use memcpy, not bcopy.

	* lex.c (java_read_char): Use memmove, not bcopy.

	* parse.y (java_parser_context_resume): Use memcpy, not bcopy.

diff -rup orig/egcs-CVS20010309/gcc/java/constants.c egcs-CVS20010309/gcc/java/constants.c
--- orig/egcs-CVS20010309/gcc/java/constants.c	Sun Feb  4 17:44:02 2001
+++ egcs-CVS20010309/gcc/java/constants.c	Sat Mar 10 00:28:18 2001
@@ -214,7 +214,7 @@ find_methodref_index (cpool, decl)
 #define PUT1(X)  (*ptr++ = (X))
 #define PUT2(X)  (PUT1((X) >> 8), PUT1(X))
 #define PUT4(X)  (PUT2((X) >> 16), PUT2(X))
-#define PUTN(P, N)  (bcopy(P, ptr, N), ptr += (N))
+#define PUTN(P, N)  (memcpy(ptr, (P), (N)), ptr += (N))
 
 /* Give the number of bytes needed in a .class file for the CPOOL
    constant pool.  Includes the 2-byte constant_pool_count. */
diff -rup orig/egcs-CVS20010309/gcc/java/lex.c egcs-CVS20010309/gcc/java/lex.c
--- orig/egcs-CVS20010309/gcc/java/lex.c	Fri Feb 23 22:28:39 2001
+++ egcs-CVS20010309/gcc/java/lex.c	Sat Mar 10 00:16:41 2001
@@ -417,10 +417,8 @@ java_read_char (lex)
 			 is in the middle of a character sequence.  We just
 			 move the valid part of the buffer to the beginning
 			 to force a read.  */
-		      /* We use bcopy() because it should work for
-			 overlapping strings.  Use memmove() instead... */
-		      bcopy (&lex->buffer[lex->first], &lex->buffer[0],
-			     lex->last - lex->first);
+		      memmove (&lex->buffer[0], &lex->buffer[lex->first], 
+			       lex->last - lex->first);
 		      lex->last -= lex->first;
 		      lex->first = 0;
 		    }
diff -rup orig/egcs-CVS20010309/gcc/java/parse.y egcs-CVS20010309/gcc/java/parse.y
--- orig/egcs-CVS20010309/gcc/java/parse.y	Fri Feb 23 22:28:39 2001
+++ egcs-CVS20010309/gcc/java/parse.y	Sat Mar 10 08:07:27 2001
@@ -2788,8 +2788,8 @@ java_parser_context_resume ()
   ctxp = restored;
 
   /* Re-installed the data for the parsing to carry on */
-  bcopy (&old->marker_begining, &ctxp->marker_begining,
-	 (size_t)(&ctxp->marker_end - &ctxp->marker_begining));
+  memcpy (&ctxp->marker_begining, &old->marker_begining, 
+	  (size_t)(&ctxp->marker_end - &ctxp->marker_begining));
 
   /* Buffer context can now be discarded */
   free (saver);



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]