1123 |
1123 |
1124 |
1124 |
1125 // Interface to java.lang.ClassLoader objects |
1125 // Interface to java.lang.ClassLoader objects |
1126 |
1126 |
1127 #define CLASSLOADER_INJECTED_FIELDS(macro) \ |
1127 #define CLASSLOADER_INJECTED_FIELDS(macro) \ |
1128 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) \ |
1128 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) |
1129 macro(java_lang_ClassLoader, dependencies, object_signature, false) |
|
1130 |
1129 |
1131 class java_lang_ClassLoader : AllStatic { |
1130 class java_lang_ClassLoader : AllStatic { |
1132 private: |
1131 private: |
1133 // The fake offsets are added by the class loader when java.lang.Class is loaded |
1132 // The fake offsets are added by the class loader when java.lang.Class is loaded |
1134 enum { |
1133 enum { |
1135 hc_parent_offset = 0 |
1134 hc_parent_offset = 0 |
1136 }; |
1135 }; |
1137 static int _loader_data_offset; |
1136 static int _loader_data_offset; |
1138 static int _dependencies_offset; |
|
1139 static bool offsets_computed; |
1137 static bool offsets_computed; |
1140 static int parent_offset; |
1138 static int parent_offset; |
1141 static int parallelCapable_offset; |
1139 static int parallelCapable_offset; |
1142 |
1140 |
1143 public: |
1141 public: |
1144 static void compute_offsets(); |
1142 static void compute_offsets(); |
1145 |
1143 |
1146 static ClassLoaderData** loader_data_addr(oop loader); |
1144 static ClassLoaderData** loader_data_addr(oop loader); |
1147 static ClassLoaderData* loader_data(oop loader); |
1145 static ClassLoaderData* loader_data(oop loader); |
1148 |
|
1149 static oop dependencies(oop loader); |
|
1150 static HeapWord* dependencies_addr(oop loader); |
|
1151 |
1146 |
1152 static oop parent(oop loader); |
1147 static oop parent(oop loader); |
1153 static bool isAncestor(oop loader, oop cl); |
1148 static bool isAncestor(oop loader, oop cl); |
1154 |
1149 |
1155 // Support for parallelCapable field |
1150 // Support for parallelCapable field |