Mercurial > hg > truffle
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 |