< prev index next >

src/share/vm/prims/privilegedStack.hpp

Print this page




  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP
  26 #define SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 #include "oops/oopsHierarchy.hpp"
  30 #include "runtime/vframe.hpp"
  31 #include "utilities/growableArray.hpp"
  32 
  33 class PrivilegedElement VALUE_OBJ_CLASS_SPEC {
  34  private:
  35   Klass*    _klass;                // klass for method
  36   oop       _privileged_context;   // context for operation
  37   intptr_t*     _frame_id;             // location on stack
  38   PrivilegedElement* _next;        // Link to next one on stack
  39  public:
  40   void initialize(vframeStream* vf, oop context, PrivilegedElement* next, TRAPS);
  41   void oops_do(OopClosure* f);
  42   void classes_do(KlassClosure* f);
  43   intptr_t* frame_id() const           { return _frame_id; }
  44   oop  privileged_context() const  { return _privileged_context; }
  45   oop  class_loader() const        { return InstanceKlass::cast(_klass)->class_loader(); }
  46   oop  protection_domain() const   { return InstanceKlass::cast(_klass)->protection_domain(); }
  47   PrivilegedElement *next() const  { return _next; }
  48 
  49   // debugging (used for find)
  50   void print_on(outputStream* st) const   PRODUCT_RETURN;
  51   bool contains(address addr)             PRODUCT_RETURN0;
  52 };
  53 
  54 #endif // SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP


  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP
  26 #define SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 #include "oops/oopsHierarchy.hpp"
  30 #include "runtime/vframe.hpp"
  31 #include "utilities/growableArray.hpp"
  32 
  33 class PrivilegedElement VALUE_OBJ_CLASS_SPEC {
  34  private:
  35   Klass*    _klass;                // klass for method
  36   oop       _privileged_context;   // context for operation
  37   intptr_t*     _frame_id;             // location on stack
  38   PrivilegedElement* _next;        // Link to next one on stack
  39  public:
  40   void initialize(vframeStream* vf, oop context, PrivilegedElement* next, TRAPS);
  41   void oops_do(OopClosure* f);

  42   intptr_t* frame_id() const           { return _frame_id; }
  43   oop  privileged_context() const  { return _privileged_context; }
  44   oop  class_loader() const        { return InstanceKlass::cast(_klass)->class_loader(); }
  45   oop  protection_domain() const   { return InstanceKlass::cast(_klass)->protection_domain(); }
  46   PrivilegedElement *next() const  { return _next; }
  47 
  48   // debugging (used for find)
  49   void print_on(outputStream* st) const   PRODUCT_RETURN;
  50   bool contains(address addr)             PRODUCT_RETURN0;
  51 };
  52 
  53 #endif // SHARE_VM_PRIMS_PRIVILEGEDSTACK_HPP
< prev index next >