2014-04-11 Marc Glisse <marc.glisse@inria.fr>
[official-gcc.git] / libjava / gnu / gcj / runtime / natSystemClassLoader.cc
blob7052bc8e800fa45e74301e7dbf266c2f65642be1
1 // natSystemClassLoader.cc - native code for system class loader
3 /* Copyright (C) Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9 details. */
11 #include <config.h>
12 #include <platform.h>
14 #include <gcj/cni.h>
15 #include <jvm.h>
16 #include <execution.h>
18 #include <gnu/gcj/runtime/SystemClassLoader.h>
19 #include <java/lang/ClassNotFoundException.h>
20 #include <java/util/HashMap.h>
22 jclass
23 gnu::gcj::runtime::SystemClassLoader::findClass (jstring name)
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;