187 }
188 static bool is_string_region(int idx) {
189 CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_string &&
190 idx < MetaspaceShared::first_string + MetaspaceShared::max_strings));
191 NOT_CDS_JAVA_HEAP_RETURN_(false);
192 }
193 static bool is_open_archive_heap_region(int idx) {
194 CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_open_archive_heap_region &&
195 idx < MetaspaceShared::first_open_archive_heap_region +
196 MetaspaceShared::max_open_archive_heap_region));
197 NOT_CDS_JAVA_HEAP_RETURN_(false);
198 }
199 static bool is_in_trampoline_frame(address addr) NOT_CDS_RETURN_(false);
200
201 static void allocate_cpp_vtable_clones();
202 static intptr_t* clone_cpp_vtables(intptr_t* p);
203 static void zero_cpp_vtable_clones_for_writing();
204 static void patch_cpp_vtable_pointers();
205 static bool is_valid_shared_method(const Method* m) NOT_CDS_RETURN_(false);
206 static void serialize(SerializeClosure* sc) NOT_CDS_RETURN;
207 static void serialize_well_known_classes(SerializeClosure* soc) NOT_CDS_RETURN;
208
209 static MetaspaceSharedStats* stats() {
210 return &_stats;
211 }
212
213 static void report_out_of_space(const char* name, size_t needed_bytes);
214
215 // JVM/TI RedefineClasses() support:
216 // Remap the shared readonly space to shared readwrite, private if
217 // sharing is enabled. Simply returns true if sharing is not enabled
218 // or if the remapping has already been done by a prior call.
219 static bool remap_shared_readonly_as_readwrite() NOT_CDS_RETURN_(true);
220 static bool remapped_readwrite() {
221 CDS_ONLY(return _remapped_readwrite);
222 NOT_CDS(return false);
223 }
224
225 static void print_shared_spaces();
226
227 static bool try_link_class(InstanceKlass* ik, TRAPS);
|
187 }
188 static bool is_string_region(int idx) {
189 CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_string &&
190 idx < MetaspaceShared::first_string + MetaspaceShared::max_strings));
191 NOT_CDS_JAVA_HEAP_RETURN_(false);
192 }
193 static bool is_open_archive_heap_region(int idx) {
194 CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_open_archive_heap_region &&
195 idx < MetaspaceShared::first_open_archive_heap_region +
196 MetaspaceShared::max_open_archive_heap_region));
197 NOT_CDS_JAVA_HEAP_RETURN_(false);
198 }
199 static bool is_in_trampoline_frame(address addr) NOT_CDS_RETURN_(false);
200
201 static void allocate_cpp_vtable_clones();
202 static intptr_t* clone_cpp_vtables(intptr_t* p);
203 static void zero_cpp_vtable_clones_for_writing();
204 static void patch_cpp_vtable_pointers();
205 static bool is_valid_shared_method(const Method* m) NOT_CDS_RETURN_(false);
206 static void serialize(SerializeClosure* sc) NOT_CDS_RETURN;
207
208 static MetaspaceSharedStats* stats() {
209 return &_stats;
210 }
211
212 static void report_out_of_space(const char* name, size_t needed_bytes);
213
214 // JVM/TI RedefineClasses() support:
215 // Remap the shared readonly space to shared readwrite, private if
216 // sharing is enabled. Simply returns true if sharing is not enabled
217 // or if the remapping has already been done by a prior call.
218 static bool remap_shared_readonly_as_readwrite() NOT_CDS_RETURN_(true);
219 static bool remapped_readwrite() {
220 CDS_ONLY(return _remapped_readwrite);
221 NOT_CDS(return false);
222 }
223
224 static void print_shared_spaces();
225
226 static bool try_link_class(InstanceKlass* ik, TRAPS);
|