Mercurial > hg > truffle
comparison src/share/vm/memory/universe.cpp @ 3894:b27c72d69fd1
7083184: JSR 292: don't store context class argument with call site dependencies
Reviewed-by: jrose, never
author | twisti |
---|---|
date | Mon, 29 Aug 2011 05:07:35 -0700 |
parents | fdb992d83a87 |
children | f08d439fab8c |
comparison
equal
deleted
inserted
replaced
3893:8805f8c1e23e | 3894:b27c72d69fd1 |
---|---|
1201 CallSiteDepChange changes(call_site(), method_handle()); | 1201 CallSiteDepChange changes(call_site(), method_handle()); |
1202 | 1202 |
1203 // Compute the dependent nmethods that have a reference to a | 1203 // Compute the dependent nmethods that have a reference to a |
1204 // CallSite object. We use instanceKlass::mark_dependent_nmethod | 1204 // CallSite object. We use instanceKlass::mark_dependent_nmethod |
1205 // directly instead of CodeCache::mark_for_deoptimization because we | 1205 // directly instead of CodeCache::mark_for_deoptimization because we |
1206 // want dependents on the class CallSite only not all classes in the | 1206 // want dependents on the call site class only not all classes in |
1207 // ContextStream. | 1207 // the ContextStream. |
1208 int marked = 0; | 1208 int marked = 0; |
1209 { | 1209 { |
1210 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); | 1210 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); |
1211 instanceKlass* call_site_klass = instanceKlass::cast(SystemDictionary::CallSite_klass()); | 1211 instanceKlass* call_site_klass = instanceKlass::cast(call_site->klass()); |
1212 marked = call_site_klass->mark_dependent_nmethods(changes); | 1212 marked = call_site_klass->mark_dependent_nmethods(changes); |
1213 } | 1213 } |
1214 if (marked > 0) { | 1214 if (marked > 0) { |
1215 // At least one nmethod has been marked for deoptimization | 1215 // At least one nmethod has been marked for deoptimization |
1216 VM_Deoptimize op; | 1216 VM_Deoptimize op; |