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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

verifier fixlet


Fixes an infinite loop encountered when running Eclipse.  Tested libgcj,
mauve on i686-pc-linux-gnu.  Approved by tromey in private email, applied
to mainline.

Jeff

2003-12-01  Jeff Sturm  <jsturm@one-point.com>

	* verify.cc (clean_subrs): Clear seen_subrs.
	(copy): Walk seen_subrs from copy, not `this'.
	Don't clear seen_subrs.

Index: verify.cc
===================================================================
RCS file: /cvs/uberbaum/libjava/verify.cc,v
retrieving revision 1.57
diff -u -p -r1.57 verify.cc
--- verify.cc	19 Nov 2003 03:09:30 -0000	1.57
+++ verify.cc	1 Dec 2003 23:30:28 -0000
@@ -1010,6 +1010,7 @@ private:
 	  _Jv_Free (info);
 	  info = next;
 	}
+      seen_subrs = NULL;
     }

     void copy (const state *copy, int max_stack, int max_locals,
@@ -1035,11 +1036,10 @@ private:
       clean_subrs ();
       if (copy->seen_subrs)
 	{
-	  for (subr_info *info = seen_subrs; info != NULL; info = info->next)
+	  for (subr_info *info = copy->seen_subrs;
+	       info != NULL; info = info->next)
 	    add_subr (info->pc);
 	}
-      else
-	seen_subrs = NULL;

       this_type = copy->this_type;
       // Don't modify `next'.


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