< prev index next >

src/share/vm/prims/privilegedStack.cpp

Print this page




  34   Method* method        = vfst->method();
  35   _klass                = method->method_holder();
  36   _privileged_context   = context;
  37 #ifdef CHECK_UNHANDLED_OOPS
  38   THREAD->allow_unhandled_oop(&_privileged_context);
  39 #endif // CHECK_UNHANDLED_OOPS
  40   _frame_id             = vfst->frame_id();
  41   _next                 = next;
  42   assert(_privileged_context == NULL || _privileged_context->is_oop(), "must be an oop");
  43   assert(protection_domain() == NULL || protection_domain()->is_oop(), "must be an oop");
  44 }
  45 
  46 void PrivilegedElement::oops_do(OopClosure* f) {
  47   PrivilegedElement *cur = this;
  48   do {
  49     f->do_oop((oop*) &cur->_privileged_context);
  50     cur = cur->_next;
  51   } while(cur != NULL);
  52 }
  53 
  54 void PrivilegedElement::classes_do(KlassClosure* f) {
  55   PrivilegedElement *cur = this;
  56   do {
  57     f->do_klass(cur->_klass);
  58     cur = cur->_next;
  59   } while(cur != NULL);
  60 }
  61 
  62 //-------------------------------------------------------------------------------
  63 #ifndef PRODUCT
  64 
  65 void PrivilegedElement::print_on(outputStream* st) const {
  66   st->print("   " PTR_FORMAT " ", p2i(_frame_id));
  67   _klass->print_value_on(st);
  68   if (protection_domain() != NULL) {
  69     st->print("   ");
  70     protection_domain()->print_value_on(st);
  71   }
  72   st->cr();
  73 }
  74 
  75 bool PrivilegedElement::contains(address addr) {
  76   PrivilegedElement *e = (PrivilegedElement *)addr;
  77   if (e >= this && e < this+1) return true;
  78 
  79   if (_next != NULL) {
  80     return _next->contains(addr);
  81   } else {


  34   Method* method        = vfst->method();
  35   _klass                = method->method_holder();
  36   _privileged_context   = context;
  37 #ifdef CHECK_UNHANDLED_OOPS
  38   THREAD->allow_unhandled_oop(&_privileged_context);
  39 #endif // CHECK_UNHANDLED_OOPS
  40   _frame_id             = vfst->frame_id();
  41   _next                 = next;
  42   assert(_privileged_context == NULL || _privileged_context->is_oop(), "must be an oop");
  43   assert(protection_domain() == NULL || protection_domain()->is_oop(), "must be an oop");
  44 }
  45 
  46 void PrivilegedElement::oops_do(OopClosure* f) {
  47   PrivilegedElement *cur = this;
  48   do {
  49     f->do_oop((oop*) &cur->_privileged_context);
  50     cur = cur->_next;
  51   } while(cur != NULL);
  52 }
  53 








  54 //-------------------------------------------------------------------------------
  55 #ifndef PRODUCT
  56 
  57 void PrivilegedElement::print_on(outputStream* st) const {
  58   st->print("   " PTR_FORMAT " ", p2i(_frame_id));
  59   _klass->print_value_on(st);
  60   if (protection_domain() != NULL) {
  61     st->print("   ");
  62     protection_domain()->print_value_on(st);
  63   }
  64   st->cr();
  65 }
  66 
  67 bool PrivilegedElement::contains(address addr) {
  68   PrivilegedElement *e = (PrivilegedElement *)addr;
  69   if (e >= this && e < this+1) return true;
  70 
  71   if (_next != NULL) {
  72     return _next->contains(addr);
  73   } else {
< prev index next >