comparison src/share/vm/prims/jvmtiRedefineClasses.hpp @ 8031:927a311d00f9

8007320: NPG: move method annotations Summary: allocate method annotations and attach to ConstMethod if present Reviewed-by: dcubed, jiangli, sspitsyn, iklam
author coleenp
date Mon, 11 Feb 2013 14:06:22 -0500
parents 8d9fc28831cc
children 15a99ca4ee34
comparison
equal deleted inserted replaced
8030:f989aff6946f 8031:927a311d00f9
382 // the restrictions of RedefineClasses. Normalize the order of 382 // the restrictions of RedefineClasses. Normalize the order of
383 // overloaded methods as needed. 383 // overloaded methods as needed.
384 jvmtiError compare_and_normalize_class_versions( 384 jvmtiError compare_and_normalize_class_versions(
385 instanceKlassHandle the_class, instanceKlassHandle scratch_class); 385 instanceKlassHandle the_class, instanceKlassHandle scratch_class);
386 386
387 // Swap annotations[i] with annotations[j]
388 // Used by compare_and_normalize_class_versions() when normalizing
389 // overloaded methods or changing idnum as when adding or deleting methods.
390 void swap_all_method_annotations(int i, int j, instanceKlassHandle scratch_class, TRAPS);
391
392 // Figure out which new methods match old methods in name and signature, 387 // Figure out which new methods match old methods in name and signature,
393 // which methods have been added, and which are no longer present 388 // which methods have been added, and which are no longer present
394 void compute_added_deleted_matching_methods(); 389 void compute_added_deleted_matching_methods();
395 390
396 // Change jmethodIDs to point to the new methods 391 // Change jmethodIDs to point to the new methods
414 static void adjust_array_vtable(Klass* k_oop); 409 static void adjust_array_vtable(Klass* k_oop);
415 410
416 // Install the redefinition of a class 411 // Install the redefinition of a class
417 void redefine_single_class(jclass the_jclass, 412 void redefine_single_class(jclass the_jclass,
418 Klass* scratch_class_oop, TRAPS); 413 Klass* scratch_class_oop, TRAPS);
414
415 void swap_annotations(instanceKlassHandle new_class,
416 instanceKlassHandle scratch_class);
419 417
420 // Increment the classRedefinedCount field in the specific InstanceKlass 418 // Increment the classRedefinedCount field in the specific InstanceKlass
421 // and in all direct and indirect subclasses. 419 // and in all direct and indirect subclasses.
422 void increment_class_counter(InstanceKlass *ik, TRAPS); 420 void increment_class_counter(InstanceKlass *ik, TRAPS);
423 421