--- a/hotspot/src/share/vm/oops/klass.hpp Tue Aug 12 21:16:05 2014 -0400
+++ b/hotspot/src/share/vm/oops/klass.hpp Tue Aug 12 17:29:00 2014 -0700
@@ -147,6 +147,16 @@
jbyte _modified_oops; // Card Table Equivalent (YC/CMS support)
jbyte _accumulated_modified_oops; // Mod Union Equivalent (CMS support)
+private:
+ // This is an index into FileMapHeader::_classpath_entry_table[], to
+ // associate this class with the JAR file where it's loaded from during
+ // dump time. If a class is not loaded from the shared archive, this field is
+ // -1.
+ jshort _shared_class_path_index;
+
+ friend class SharedClassUtil;
+protected:
+
// Constructor
Klass();
@@ -253,6 +263,15 @@
void clear_accumulated_modified_oops() { _accumulated_modified_oops = 0; }
bool has_accumulated_modified_oops() { return _accumulated_modified_oops == 1; }
+ int shared_classpath_index() const {
+ return _shared_class_path_index;
+ };
+
+ void set_shared_classpath_index(int index) {
+ _shared_class_path_index = index;
+ };
+
+
protected: // internal accessors
void set_subklass(Klass* s);
void set_next_sibling(Klass* s);
@@ -422,7 +441,7 @@
public:
// CDS support - remove and restore oops from metadata. Oops are not shared.
virtual void remove_unshareable_info();
- virtual void restore_unshareable_info(TRAPS);
+ virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
protected:
// computes the subtype relationship