390
391 // These routines are roughly in call order unless otherwise noted.
392
393 // Load the caller's new class definition(s) into _scratch_classes.
394 // Constant pool merging work is done here as needed. Also calls
395 // compare_and_normalize_class_versions() to verify the class
396 // definition(s).
397 jvmtiError load_new_class_versions(TRAPS);
398
399 // Verify that the caller provided class definition(s) that meet
400 // the restrictions of RedefineClasses. Normalize the order of
401 // overloaded methods as needed.
402 jvmtiError compare_and_normalize_class_versions(
403 InstanceKlass* the_class, InstanceKlass* scratch_class);
404
405 // Figure out which new methods match old methods in name and signature,
406 // which methods have been added, and which are no longer present
407 void compute_added_deleted_matching_methods();
408
409 // Change jmethodIDs to point to the new methods
410 void update_jmethod_ids();
411
412 // In addition to marking methods as old and/or obsolete, this routine
413 // counts the number of methods that are EMCP (Equivalent Module Constant Pool).
414 int check_methods_and_mark_as_obsolete();
415 void transfer_old_native_function_registrations(InstanceKlass* the_class);
416
417 // Install the redefinition of a class
418 void redefine_single_class(jclass the_jclass,
419 InstanceKlass* scratch_class_oop, TRAPS);
420
421 void swap_annotations(InstanceKlass* new_class,
422 InstanceKlass* scratch_class);
423
424 // Increment the classRedefinedCount field in the specific InstanceKlass
425 // and in all direct and indirect subclasses.
426 void increment_class_counter(InstanceKlass *ik, TRAPS);
427
428 // Support for constant pool merging (these routines are in alpha order):
429 void append_entry(const constantPoolHandle& scratch_cp, int scratch_i,
430 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS);
|
390
391 // These routines are roughly in call order unless otherwise noted.
392
393 // Load the caller's new class definition(s) into _scratch_classes.
394 // Constant pool merging work is done here as needed. Also calls
395 // compare_and_normalize_class_versions() to verify the class
396 // definition(s).
397 jvmtiError load_new_class_versions(TRAPS);
398
399 // Verify that the caller provided class definition(s) that meet
400 // the restrictions of RedefineClasses. Normalize the order of
401 // overloaded methods as needed.
402 jvmtiError compare_and_normalize_class_versions(
403 InstanceKlass* the_class, InstanceKlass* scratch_class);
404
405 // Figure out which new methods match old methods in name and signature,
406 // which methods have been added, and which are no longer present
407 void compute_added_deleted_matching_methods();
408
409 // Change jmethodIDs to point to the new methods
410 void update_jmethod_ids(Thread* thread);
411
412 // In addition to marking methods as old and/or obsolete, this routine
413 // counts the number of methods that are EMCP (Equivalent Module Constant Pool).
414 int check_methods_and_mark_as_obsolete();
415 void transfer_old_native_function_registrations(InstanceKlass* the_class);
416
417 // Install the redefinition of a class
418 void redefine_single_class(jclass the_jclass,
419 InstanceKlass* scratch_class_oop, TRAPS);
420
421 void swap_annotations(InstanceKlass* new_class,
422 InstanceKlass* scratch_class);
423
424 // Increment the classRedefinedCount field in the specific InstanceKlass
425 // and in all direct and indirect subclasses.
426 void increment_class_counter(InstanceKlass *ik, TRAPS);
427
428 // Support for constant pool merging (these routines are in alpha order):
429 void append_entry(const constantPoolHandle& scratch_cp, int scratch_i,
430 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS);
|