92 jbyte *extra; /* optional extra data */ |
92 jbyte *extra; /* optional extra data */ |
93 jlong pos; /* position of LOC header (if negative) or data */ |
93 jlong pos; /* position of LOC header (if negative) or data */ |
94 } jzentry; |
94 } jzentry; |
95 |
95 |
96 class ClassPathZipEntry: public ClassPathEntry { |
96 class ClassPathZipEntry: public ClassPathEntry { |
97 enum { |
|
98 _unknown = 0, |
|
99 _yes = 1, |
|
100 _no = 2 |
|
101 }; |
|
102 private: |
97 private: |
103 jzfile* _zip; // The zip archive |
98 jzfile* _zip; // The zip archive |
104 const char* _zip_name; // Name of zip archive |
99 const char* _zip_name; // Name of zip archive |
105 bool _is_boot_append; // entry coming from -Xbootclasspath/a |
|
106 u1 _multi_versioned; // indicates if the jar file has multi-versioned entries. |
|
107 // It can have value of "_unknown", "_yes", or "_no" |
|
108 public: |
100 public: |
109 bool is_modules_image() const { return false; } |
101 bool is_modules_image() const { return false; } |
110 bool is_jar_file() const { return true; } |
102 bool is_jar_file() const { return true; } |
111 const char* name() const { return _zip_name; } |
103 const char* name() const { return _zip_name; } |
112 JImageFile* jimage() const { return NULL; } |
104 JImageFile* jimage() const { return NULL; } |
113 ClassPathZipEntry(jzfile* zip, const char* zip_name, bool is_boot_append); |
105 ClassPathZipEntry(jzfile* zip, const char* zip_name, bool is_boot_append); |
114 virtual ~ClassPathZipEntry(); |
106 virtual ~ClassPathZipEntry(); |
115 u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS); |
107 u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS); |
116 u1* open_versioned_entry(const char* name, jint* filesize, TRAPS) NOT_CDS_RETURN_(NULL); |
|
117 ClassFileStream* open_stream(const char* name, TRAPS); |
108 ClassFileStream* open_stream(const char* name, TRAPS); |
118 void contents_do(void f(const char* name, void* context), void* context); |
109 void contents_do(void f(const char* name, void* context), void* context); |
119 bool is_multiple_versioned(TRAPS) NOT_CDS_RETURN_(false); |
|
120 // Debugging |
110 // Debugging |
121 NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) |
111 NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);) |
122 }; |
112 }; |
123 |
113 |
124 |
114 |