src/hotspot/share/classfile/classLoader.hpp
changeset 50939 783cc906a5f8
parent 50039 9fec54fe663d
child 52076 f8626bcc1698
equal deleted inserted replaced
50938:29dff19ce132 50939:783cc906a5f8
    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