src/share/vm/prims/privilegedStack.cpp

changeset 4037
da91efe96a93
parent 2314
f95d63e2154a
child 6680
78bbf4d43a14
     1.1 --- a/src/share/vm/prims/privilegedStack.cpp	Fri Aug 31 16:39:35 2012 -0700
     1.2 +++ b/src/share/vm/prims/privilegedStack.cpp	Sat Sep 01 13:25:18 2012 -0400
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -25,18 +25,17 @@
    1.11  #include "precompiled.hpp"
    1.12  #include "memory/allocation.inline.hpp"
    1.13  #include "oops/instanceKlass.hpp"
    1.14 -#include "oops/methodOop.hpp"
    1.15 +#include "oops/method.hpp"
    1.16  #include "oops/oop.inline.hpp"
    1.17  #include "prims/privilegedStack.hpp"
    1.18  #include "runtime/vframe.hpp"
    1.19  
    1.20  
    1.21  void PrivilegedElement::initialize(vframeStream* vfst, oop context, PrivilegedElement* next, TRAPS) {
    1.22 -  methodOop method      = vfst->method();
    1.23 +  Method* method        = vfst->method();
    1.24    _klass                = method->method_holder();
    1.25    _privileged_context   = context;
    1.26  #ifdef CHECK_UNHANDLED_OOPS
    1.27 -  THREAD->allow_unhandled_oop(&_klass);
    1.28    THREAD->allow_unhandled_oop(&_privileged_context);
    1.29  #endif // CHECK_UNHANDLED_OOPS
    1.30    _frame_id             = vfst->frame_id();
    1.31 @@ -48,12 +47,19 @@
    1.32  void PrivilegedElement::oops_do(OopClosure* f) {
    1.33    PrivilegedElement *cur = this;
    1.34    do {
    1.35 -    f->do_oop((oop*) &cur->_klass);
    1.36      f->do_oop((oop*) &cur->_privileged_context);
    1.37      cur = cur->_next;
    1.38    } while(cur != NULL);
    1.39  }
    1.40  
    1.41 +void PrivilegedElement::classes_do(KlassClosure* f) {
    1.42 +  PrivilegedElement *cur = this;
    1.43 +  do {
    1.44 +    f->do_klass(cur->_klass);
    1.45 +    cur = cur->_next;
    1.46 +  } while(cur != NULL);
    1.47 +}
    1.48 +
    1.49  //-------------------------------------------------------------------------------
    1.50  #ifndef PRODUCT
    1.51  

mercurial