| // natSystemClassLoader.cc - native code for system class loader |
| |
| /* Copyright (C) Free Software Foundation |
| |
| This file is part of libgcj. |
| |
| This software is copyrighted work licensed under the terms of the |
| Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
| details. */ |
| |
| #include <config.h> |
| #include <platform.h> |
| |
| #include <gcj/cni.h> |
| #include <jvm.h> |
| #include <execution.h> |
| |
| #include <gnu/gcj/runtime/SystemClassLoader.h> |
| #include <java/lang/ClassNotFoundException.h> |
| #include <java/util/HashMap.h> |
| |
| jclass |
| gnu::gcj::runtime::SystemClassLoader::findClass (jstring name) |
| { |
| jclass result = (jclass) nativeClasses->get(name); |
| if (! result) |
| return URLClassLoader::findClass(name); |
| // Never return a class whose supers are not installed. |
| _Jv_Linker::wait_for_state (result, JV_STATE_LOADING); |
| return result; |
| } |