Example #1
0
void EntryActivation::iterate(OopVisitor* visitor) {
#if USE_OOP_VISITOR
  Oop::iterate(visitor);
  { 
    NamedField id("length", true);
    visitor->do_int(&id, length_offset(), true);
  }
  { 
    NamedField id("method", true);
    visitor->do_oop(&id, method_offset(), true);
  }
  { 
    NamedField id("next", true);
    visitor->do_oop(&id, next_offset(), true);
  }
#if ENABLE_REFLECTION
  { 
    NamedField id("return_point", true);
    id.set_hex_output(true);
    id.set_is_pointer(true);
    visitor->do_uint(&id, return_point_offset(), true);
  }
#endif
  for (int index = 0; index < length(); index++) {
    IndexableField id(index, true);
    // visitor->do_int(&id, tag_offset(index), true);
    switch(tag_at(index)) { 
      case float_tag: visitor->do_float(&id, value_offset(index), true); break;
      case obj_tag:   visitor->do_oop(&id, value_offset(index), true); break;
      default:        visitor->do_int(&id, value_offset(index), true); break;
    }
  }
#endif
}
Example #2
0
void CompiledMethod::iterate(OopVisitor* visitor) {
#if USE_OOP_VISITOR
  Oop::iterate(visitor);

  { // owning method
    NamedField id("method", true);
    visitor->do_oop(&id, method_offset(), true);
  }

  { // flags and size
    NamedField id("flags_and_size", true);
    visitor->do_uint(&id, flags_and_size_offset(), true);
  }
  // Do we want to disassemble this in verbose mode?
#endif
}
Example #3
0
 void set_method(OopDesc* value) {
   obj_field_put(method_offset(), value);
 }
Example #4
0
 // Returns the method causing this code
 // ^ Method
 ReturnOop method() const {
   return obj_field(method_offset());
 }