summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/verify.cc6
2 files changed, 9 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 32ff83c8c13..a60d6cd55a1 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2003-12-01 Jeff Sturm <jsturm@one-point.com>
+
+ * verify.cc (state::clean_subrs): Clear seen_subrs.
+ (state::copy): Walk seen_subrs from copy, not `this'.
+ Don't clear seen_subrs.
+
2003-12-01 Kim Ho <kho@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c (create):
diff --git a/libjava/verify.cc b/libjava/verify.cc
index 34583bdc180..e085938ce78 100644
--- a/libjava/verify.cc
+++ b/libjava/verify.cc
@@ -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'.