207 void set_constant_pool(ConstantPool* pool) { _constant_pool = pool; }
208 ConstantPool* constant_pool() const { return _constant_pool; }
209
210 // Code generation
211 static ByteSize base_offset() { return in_ByteSize(sizeof(ConstantPoolCache)); }
212
213 #if INCLUDE_JVMTI
214 // RedefineClasses() API support:
215 // If any entry of this ConstantPoolCache points to any of
216 // old_methods, replace it with the corresponding new_method.
217 // trace_name_printed is set to true if the current call has
218 // printed the klass name so that other routines in the adjust_*
219 // group don't print the klass name.
220 void adjust_method_entries(bool* trace_name_printed);
221 bool check_no_old_or_obsolete_entries();
222 void dump_cache();
223 #endif // INCLUDE_JVMTI
224
225 #if INCLUDE_CDS
226 void remove_resolved_field_entries_if_non_deterministic();
227 void remove_resolved_method_entries_if_non_deterministic();
228 bool can_archive_resolved_method(ResolvedMethodEntry* method_entry);
229 #endif
230
231 // RedefineClasses support
232 DEBUG_ONLY(bool on_stack() { return false; })
233 void deallocate_contents(ClassLoaderData* data);
234 void record_gc_epoch();
235 uint64_t gc_epoch() { return _gc_epoch; }
236
237 // Return TRUE if resolution failed and this thread got to record the failure
238 // status. Return FALSE if another thread succeeded or failed in resolving
239 // the method and recorded the success or failure before this thread had a
240 // chance to record its failure.
241 bool save_and_throw_indy_exc(const constantPoolHandle& cpool, int cpool_index, int index, constantTag tag, TRAPS);
242 oop set_dynamic_call(const CallInfo &call_info, int index);
243 oop appendix_if_resolved(int method_index) const;
244 oop appendix_if_resolved(ResolvedMethodEntry* method_entry) const;
245
246 // Printing
247 void print_on(outputStream* st) const;
248 void print_value_on(outputStream* st) const;
|
207 void set_constant_pool(ConstantPool* pool) { _constant_pool = pool; }
208 ConstantPool* constant_pool() const { return _constant_pool; }
209
210 // Code generation
211 static ByteSize base_offset() { return in_ByteSize(sizeof(ConstantPoolCache)); }
212
213 #if INCLUDE_JVMTI
214 // RedefineClasses() API support:
215 // If any entry of this ConstantPoolCache points to any of
216 // old_methods, replace it with the corresponding new_method.
217 // trace_name_printed is set to true if the current call has
218 // printed the klass name so that other routines in the adjust_*
219 // group don't print the klass name.
220 void adjust_method_entries(bool* trace_name_printed);
221 bool check_no_old_or_obsolete_entries();
222 void dump_cache();
223 #endif // INCLUDE_JVMTI
224
225 #if INCLUDE_CDS
226 void remove_resolved_field_entries_if_non_deterministic();
227 void remove_resolved_indy_entries_if_non_deterministic();
228 void remove_resolved_method_entries_if_non_deterministic();
229 bool can_archive_resolved_method(ConstantPool* src_cp, ResolvedMethodEntry* method_entry);
230 bool can_archive_invokehandle(ResolvedMethodEntry* rme);
231 #endif
232
233 // RedefineClasses support
234 DEBUG_ONLY(bool on_stack() { return false; })
235 void deallocate_contents(ClassLoaderData* data);
236 void record_gc_epoch();
237 uint64_t gc_epoch() { return _gc_epoch; }
238
239 // Return TRUE if resolution failed and this thread got to record the failure
240 // status. Return FALSE if another thread succeeded or failed in resolving
241 // the method and recorded the success or failure before this thread had a
242 // chance to record its failure.
243 bool save_and_throw_indy_exc(const constantPoolHandle& cpool, int cpool_index, int index, constantTag tag, TRAPS);
244 oop set_dynamic_call(const CallInfo &call_info, int index);
245 oop appendix_if_resolved(int method_index) const;
246 oop appendix_if_resolved(ResolvedMethodEntry* method_entry) const;
247
248 // Printing
249 void print_on(outputStream* st) const;
250 void print_value_on(outputStream* st) const;
|