Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 10133:6337ca4dcad8
8008511: JSR 292: MemberName vmtarget refs to methods must be updated at class redefinition
Summary: Lazily create and maintain the MemberNameTable to be able to update MemberName's
Reviewed-by: coleenp, jrose, dholmes
Contributed-by: serguei.spitsyn@oracle.com
author | sspitsyn |
---|---|
date | Sat, 20 Apr 2013 04:07:08 -0700 |
parents | 56c364daccc3 |
children | 15a99ca4ee34 |
comparison
equal
deleted
inserted
replaced
10132:5b6512efcdc4 | 10133:6337ca4dcad8 |
---|---|
3282 | 3282 |
3283 // Adjust constantpool caches and vtables for all classes | 3283 // Adjust constantpool caches and vtables for all classes |
3284 // that reference methods of the evolved class. | 3284 // that reference methods of the evolved class. |
3285 SystemDictionary::classes_do(adjust_cpool_cache_and_vtable, THREAD); | 3285 SystemDictionary::classes_do(adjust_cpool_cache_and_vtable, THREAD); |
3286 | 3286 |
3287 // JSR-292 support | |
3288 MemberNameTable* mnt = the_class->member_names(); | |
3289 if (mnt != NULL) { | |
3290 bool trace_name_printed = false; | |
3291 mnt->adjust_method_entries(_matching_old_methods, | |
3292 _matching_new_methods, | |
3293 _matching_methods_length, | |
3294 &trace_name_printed); | |
3295 } | |
3296 | |
3287 // Fix Resolution Error table also to remove old constant pools | 3297 // Fix Resolution Error table also to remove old constant pools |
3288 SystemDictionary::delete_resolution_error(old_constants); | 3298 SystemDictionary::delete_resolution_error(old_constants); |
3289 | 3299 |
3290 if (the_class->oop_map_cache() != NULL) { | 3300 if (the_class->oop_map_cache() != NULL) { |
3291 // Flush references to any obsolete methods from the oop map cache | 3301 // Flush references to any obsolete methods from the oop map cache |