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