natSystemClassLoader.cc 833 B

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