aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorJeff Sturm <jeff.sturm@commerceone.com>2001-02-12 17:30:00 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-02-12 17:30:00 +0000
commitc6b33a47ea7d36d3e9eb4de227778332b179704d (patch)
tree4c00b61de5e3634c10d50ef6364693ac611dd522 /libjava
parent7004b11bf0d1b4a58baccfd38bdbff9365f0e87b (diff)
downloadgcc-c6b33a47ea7d36d3e9eb4de227778332b179704d.zip
gcc-c6b33a47ea7d36d3e9eb4de227778332b179704d.tar.gz
gcc-c6b33a47ea7d36d3e9eb4de227778332b179704d.tar.bz2
interpret.cc (continue1): [insn_invokevirtual] Do an explicit null pointer check.
2001-02-12 Jeff Sturm <jeff.sturm@commerceone.com> Tom Tromey <tromey@redhat.com> * interpret.cc (continue1): [insn_invokevirtual] Do an explicit null pointer check. Co-Authored-By: Tom Tromey <tromey@redhat.com> From-SVN: r39607
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/interpret.cc8
2 files changed, 12 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 93a23bc..cfe7f4a 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2001-02-12 Jeff Sturm <jeff.sturm@commerceone.com>
+ Tom Tromey <tromey@redhat.com>
+
+ * interpret.cc (continue1): [insn_invokevirtual] Do an explicit
+ null pointer check.
+
2001-02-09 Tom Tromey <tromey@redhat.com>
* java/util/Timer.java: New version from Classpath.
diff --git a/libjava/interpret.cc b/libjava/interpret.cc
index 0a069ac..aba1e2f 100644
--- a/libjava/interpret.cc
+++ b/libjava/interpret.cc
@@ -1,6 +1,6 @@
// interpret.cc - Code for the interpreter
-/* Copyright (C) 1999, 2000 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
@@ -678,7 +678,11 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
rmeth = (_Jv_ResolvePoolEntry (defining_class, index)).rmethod;
sp -= rmeth->stack_item_count;
- NULLCHECK (sp[0].o);
+ // We don't use NULLCHECK here because we can't rely on that
+ // working if the method is final. So instead we do an
+ // explicit test.
+ if (! sp[0].o)
+ throw new java::lang::NullPointerException ();
if (rmeth->vtable_index == -1)
{