< prev index next >

src/share/vm/classfile/classLoader.hpp

Print this page

        

*** 30,42 **** --- 30,47 ---- #include "utilities/macros.hpp" // The VM class loader. #include <sys/stat.h> + // Name of boot module image + #define BOOT_IMAGE_NAME "bootmodules.jimage" // Class path entry (directory or zip file) + class ImageFileReader; + class ImageModuleData; + class ClassPathEntry: public CHeapObj<mtClass> { private: ClassPathEntry* _next; public: // Next entry in class path
*** 45,54 **** --- 50,60 ---- // may have unlocked readers, so write atomically. OrderAccess::release_store_ptr(&_next, next); } virtual bool is_jar_file() = 0; virtual const char* name() = 0; + virtual ImageFileReader* image() = 0; virtual bool is_lazy(); // Constructor ClassPathEntry(); // Attempt to locate file_name through this class path entry. // Returns a class file parsing stream if successfull.
*** 63,72 **** --- 69,79 ---- private: const char* _dir; // Name of directory public: bool is_jar_file() { return false; } const char* name() { return _dir; } + ImageFileReader* image() { return NULL; } ClassPathDirEntry(const char* dir); ClassFileStream* open_stream(const char* name, TRAPS); // Debugging NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) NOT_PRODUCT(bool is_jrt();)
*** 92,101 **** --- 99,109 ---- jzfile* _zip; // The zip archive const char* _zip_name; // Name of zip archive public: bool is_jar_file() { return true; } const char* name() { return _zip_name; } + ImageFileReader* image() { return NULL; } ClassPathZipEntry(jzfile* zip, const char* zip_name); ~ClassPathZipEntry(); u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS); ClassFileStream* open_stream(const char* name, TRAPS); void contents_do(void f(const char* name, void* context), void* context);
*** 115,124 **** --- 123,133 ---- volatile ClassPathEntry* _resolved_entry; ClassPathEntry* resolve_entry(TRAPS); public: bool is_jar_file(); const char* name() { return _path; } + ImageFileReader* image() { return NULL; } LazyClassPathEntry(const char* path, const struct stat* st, bool throw_exception); virtual ~LazyClassPathEntry(); u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS); ClassFileStream* open_stream(const char* name, TRAPS);
*** 127,145 **** NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) NOT_PRODUCT(bool is_jrt();) }; // For java image files - class ImageFile; class ClassPathImageEntry: public ClassPathEntry { private: ! ImageFile *_image; public: bool is_jar_file() { return false; } bool is_open() { return _image != NULL; } const char* name(); ! ClassPathImageEntry(char* name); ~ClassPathImageEntry(); ClassFileStream* open_stream(const char* name, TRAPS); // Debugging NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) --- 136,156 ---- NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) NOT_PRODUCT(bool is_jrt();) }; // For java image files class ClassPathImageEntry: public ClassPathEntry { private: ! ImageFileReader* _image; ! ImageModuleData* _module_data; public: bool is_jar_file() { return false; } bool is_open() { return _image != NULL; } const char* name(); ! ImageFileReader* image() { return _image; } ! ImageModuleData* module_data() { return _module_data; } ! ClassPathImageEntry(ImageFileReader* image); ~ClassPathImageEntry(); ClassFileStream* open_stream(const char* name, TRAPS); // Debugging NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);)
< prev index next >