22 *
23 */
24
25 #ifndef SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
26 #define SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
27
28 #include "classfile/classLoader.hpp"
29 #include "oops/instanceKlass.hpp"
30 #include "runtime/handles.hpp"
31
32 class ClassLoaderExt: public ClassLoader { // AllStatic
33 public:
34
35 class Context {
36 const char* _file_name;
37 public:
38 Context(const char* class_name, const char* file_name, TRAPS) {
39 _file_name = file_name;
40 }
41
42 bool check(ClassFileStream* stream, const int classpath_index) {
43 return true;
44 }
45
46 bool should_verify(int classpath_index) {
47 return false;
48 }
49
50 instanceKlassHandle record_result(const int classpath_index,
51 ClassPathEntry* e, instanceKlassHandle result, TRAPS) {
52 if (ClassLoader::add_package(_file_name, classpath_index, THREAD)) {
53 if (DumpSharedSpaces) {
54 result->set_shared_classpath_index(classpath_index);
55 }
56 return result;
57 } else {
58 return instanceKlassHandle(); // NULL
59 }
60 }
61 };
62
63
64 static void add_class_path_entry(const char* path, bool check_for_duplicates,
65 ClassPathEntry* new_entry) {
66 ClassLoader::add_to_list(new_entry);
67 }
68 static void append_boot_classpath(ClassPathEntry* new_entry) {
69 ClassLoader::add_to_list(new_entry);
70 }
71 static void setup_search_paths() {}
|
22 *
23 */
24
25 #ifndef SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
26 #define SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
27
28 #include "classfile/classLoader.hpp"
29 #include "oops/instanceKlass.hpp"
30 #include "runtime/handles.hpp"
31
32 class ClassLoaderExt: public ClassLoader { // AllStatic
33 public:
34
35 class Context {
36 const char* _file_name;
37 public:
38 Context(const char* class_name, const char* file_name, TRAPS) {
39 _file_name = file_name;
40 }
41
42 bool check(const ClassFileStream* stream, const int classpath_index) {
43 return true;
44 }
45
46 bool should_verify(int classpath_index) {
47 return false;
48 }
49
50 instanceKlassHandle record_result(const int classpath_index,
51 const ClassPathEntry* e,
52 instanceKlassHandle result, TRAPS) {
53 if (ClassLoader::add_package(_file_name, classpath_index, THREAD)) {
54 if (DumpSharedSpaces) {
55 result->set_shared_classpath_index(classpath_index);
56 }
57 return result;
58 } else {
59 return instanceKlassHandle(); // NULL
60 }
61 }
62 };
63
64
65 static void add_class_path_entry(const char* path, bool check_for_duplicates,
66 ClassPathEntry* new_entry) {
67 ClassLoader::add_to_list(new_entry);
68 }
69 static void append_boot_classpath(ClassPathEntry* new_entry) {
70 ClassLoader::add_to_list(new_entry);
71 }
72 static void setup_search_paths() {}
|