This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
verifier fixlet
- From: Jeff Sturm <jsturm at one-point dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Mon, 1 Dec 2003 22:48:26 -0500 (EST)
- Subject: 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'.