diff options
author | Tom Tromey <tromey@redhat.com> | 2006-05-05 15:05:20 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2006-05-05 15:05:20 +0000 |
commit | 6ec13f0b968e930e6818f9088e815b525eadaedb (patch) | |
tree | 7224d376e0ab8c0a6d24d040d25e96f8dc5d254c /libjava/java | |
parent | c6ea4dd7ae25671c084ba0cd7c75be07d643b113 (diff) | |
download | gcc-6ec13f0b968e930e6818f9088e815b525eadaedb.zip gcc-6ec13f0b968e930e6818f9088e815b525eadaedb.tar.gz gcc-6ec13f0b968e930e6818f9088e815b525eadaedb.tar.bz2 |
re PR libgcj/27294 (gij throws NullPointerException, when the interpreter is not enabled)
PR libgcj/27294:
* java/lang/natVMClassLoader.cc (defineClass): Throw
VirtualMachineError if no interpreter configured.
From-SVN: r113554
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/natVMClassLoader.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libjava/java/lang/natVMClassLoader.cc b/libjava/java/lang/natVMClassLoader.cc index bffbfc0..95c1f15 100644 --- a/libjava/java/lang/natVMClassLoader.cc +++ b/libjava/java/lang/natVMClassLoader.cc @@ -1,6 +1,6 @@ // natVMClassLoader.cc - VMClassLoader native methods -/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation This file is part of libgcj. @@ -34,6 +34,7 @@ details. */ #include <java/lang/StringBuffer.h> #include <java/lang/Runtime.h> #include <java/util/HashSet.h> +#include <java/lang/VirtualMachineError.h> java::lang::Class * java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader, @@ -94,6 +95,20 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader, } #endif // INTERPRETER + if (! klass) + { + StringBuffer *sb = new StringBuffer(); + if (name) + { + sb->append(JvNewStringLatin1("found class file for class ")); + sb->append(name); + } + else + sb->append(JvNewStringLatin1("found unnamed class file")); + sb->append(JvNewStringLatin1(", but no interpreter configured in this libgcj")); + throw new VirtualMachineError(sb->toString()); + } + return klass; } |