Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 12022:85147f28faba
8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
Summary: ActiveMethodOopsCache was used to keep track of old versions of some methods that are cached in Universe but is buggy with permgen removal and not needed anymore
Reviewed-by: sspitsyn, dcubed, mseledtsov
author | coleenp |
---|---|
date | Mon, 12 Aug 2013 17:24:54 -0400 |
parents | 825e6cb66923 |
children | e22ee8e7ae62 |
comparison
equal
deleted
inserted
replaced
12021:bd0e82136b03 | 12022:85147f28faba |
---|---|
3215 | 3215 |
3216 // Remove all breakpoints in methods of this class | 3216 // Remove all breakpoints in methods of this class |
3217 JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints(); | 3217 JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints(); |
3218 jvmti_breakpoints.clearall_in_class_at_safepoint(the_class_oop); | 3218 jvmti_breakpoints.clearall_in_class_at_safepoint(the_class_oop); |
3219 | 3219 |
3220 if (the_class_oop == Universe::reflect_invoke_cache()->klass()) { | |
3221 // We are redefining java.lang.reflect.Method. Method.invoke() is | |
3222 // cached and users of the cache care about each active version of | |
3223 // the method so we have to track this previous version. | |
3224 // Do this before methods get switched | |
3225 Universe::reflect_invoke_cache()->add_previous_version( | |
3226 the_class->method_with_idnum(Universe::reflect_invoke_cache()->method_idnum())); | |
3227 } | |
3228 | |
3229 // Deoptimize all compiled code that depends on this class | 3220 // Deoptimize all compiled code that depends on this class |
3230 flush_dependent_code(the_class, THREAD); | 3221 flush_dependent_code(the_class, THREAD); |
3231 | 3222 |
3232 _old_methods = the_class->methods(); | 3223 _old_methods = the_class->methods(); |
3233 _new_methods = scratch_class->methods(); | 3224 _new_methods = scratch_class->methods(); |