< prev index next >
src/hotspot/share/prims/jvm.cpp
Print this page
rev 53034 : imported patch 8214329
@@ -1228,26 +1228,23 @@
Handle privileged_context(thread, NULL);
bool is_privileged = false;
oop protection_domain = NULL;
// Iterate through Java frames
- RegisterMap reg_map(thread);
- javaVFrame *vf = thread->last_java_vframe(®_map);
- for (; vf != NULL; vf = vf->java_sender()) {
+ vframeStream vfst(thread);
+ for(; !vfst.at_end(); vfst.next()) {
// get method of frame
- Method* method = vf->method();
+ Method* method = vfst.method();
// stop at the first privileged frame
if (method->method_holder() == SystemDictionary::AccessController_klass() &&
method->name() == vmSymbols::executePrivileged_name())
{
// this frame is privileged
is_privileged = true;
- javaVFrame *priv = vf; // executePrivileged
- javaVFrame *caller_fr = priv->java_sender(); // doPrivileged
- caller_fr = caller_fr->java_sender(); // caller
+ javaVFrame *priv = vfst.asJavaVFrame(); // executePrivileged
StackValueCollection* locals = priv->locals();
privileged_context = locals->obj_at(1);
Handle caller = locals->obj_at(2);
< prev index next >