1 // natSystemClassLoader.cc - native code for system class loader
2 
3 /* Copyright (C) Free Software Foundation
4 
5    This file is part of libgcj.
6 
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
9 details.  */
10 
11 #include <config.h>
12 #include <platform.h>
13 
14 #include <gcj/cni.h>
15 #include <jvm.h>
16 #include <execution.h>
17 
18 #include <gnu/gcj/runtime/SystemClassLoader.h>
19 #include <java/lang/ClassNotFoundException.h>
20 #include <java/util/HashMap.h>
21 
22 jclass
findClass(jstring name)23 gnu::gcj::runtime::SystemClassLoader::findClass (jstring name)
24 {
25   jclass result = (jclass) nativeClasses->get(name);
26   if (! result)
27     return URLClassLoader::findClass(name);
28   // Never return a class whose supers are not installed.
29   _Jv_Linker::wait_for_state (result, JV_STATE_LOADING);
30   return result;
31 }
32