[PATCH] Java: removing and old limitation.

Alexandre Petit-Bianco apbianco@cygnus.com
Mon Dec 6 11:50:00 GMT 1999


This patch removes a limitation of the Java parser which, until now,
never was considering a reading a `.class' file if a matching `.java'
file was found. This situation occured when compiling from Java
sources.

./A

Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * jcf-parse.c (saw_java_source): Global variable removed.
        (read_class): Don't use `saw_java_source'. Added extra braces.
        (yyparse): Code setting `saw_java_source' removed.

Index: jcf-parse.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/jcf-parse.c,v
retrieving revision 1.36
diff -u -p -r1.36 jcf-parse.c
--- jcf-parse.c	1999/11/21 23:37:58	1.36
+++ jcf-parse.c	1999/12/06 19:43:13
@@ -57,11 +57,6 @@ extern struct obstack *saveable_obstack;
 extern struct obstack temporary_obstack;
 extern struct obstack permanent_obstack;
 
-/* This is true if the user specified a `.java' file on the command
-   line.  Otherwise it is 0.  FIXME: this is temporary, until our
-   .java parser is fully working.  */
-int saw_java_source = 0;
-
 /* The class we are currently processing. */
 tree current_class = NULL_TREE;
 
@@ -482,24 +477,21 @@ read_class (name)
 
   /* Search in current zip first.  */
   if (find_in_current_zip (IDENTIFIER_POINTER (name), &jcf) == 0)
-    /* FIXME: until the `.java' parser is fully working, we only
-       look for a .java file when one was mentioned on the
-       command line.  This lets us test the .java parser fairly
-       easily, without compromising our ability to use the
-       .class parser without fear.  */
-    if (find_class (IDENTIFIER_POINTER (name), IDENTIFIER_LENGTH (name),
-		     &this_jcf, saw_java_source) == 0)
-      {
-	pop_obstacks ();	/* FIXME: one pop_obstack() per function */
-	return 0;
-      }
-    else
-      {
-        this_jcf.seen_in_zip = 0;
-        current_jcf = &this_jcf;
-	if (this_jcf.outofsynch)
-	  jcf_out_of_synch (current_jcf);
-      }
+    {
+      if (find_class (IDENTIFIER_POINTER (name), IDENTIFIER_LENGTH (name),
+		      &this_jcf, 1) == 0)
+	{
+	  pop_obstacks ();	/* FIXME: one pop_obstack() per function */
+	  return 0;
+	}
+      else
+	{
+	  this_jcf.seen_in_zip = 0;
+	  current_jcf = &this_jcf;
+	  if (this_jcf.outofsynch)
+	    jcf_out_of_synch (current_jcf);
+	}
+    }
   else
     current_jcf = jcf;
 
@@ -800,10 +792,6 @@ yyparse ()
 	  int twice = 0;
 
 	  int len = strlen (list);
-	  /* FIXME: this test is only needed until our .java parser is
-	     fully capable.  */
-	  if (len > 5 && ! strcmp (&list[len - 5], ".java"))
-	    saw_java_source = 1;
 
 	  if (*list != '/' && several_files)
 	    obstack_grow (&temporary_obstack, "./", 2);


More information about the Gcc-patches mailing list