示例#1
0
 ReturnOop next(bool by_ref) {
   if (by_ref) {
     return obj_field(next_by_ref_offset());
   } else {
     return obj_field(next_by_id_offset());
   }
 }
示例#2
0
void StackmapList::update(int index, jushort count, jushort height, jushort bci)
{
  if (is_short_map(index)) {
    juint entry = uint_field(entry_stat_offset(index));
    GUARANTEE(height <= 0x3, "Invalid map type chosen in set_stack_height");
    GUARANTEE(count <= 0xF, "Invalid map type chosen in set_locals");

    entry |= ((height & StackmapListDesc::SHORT_ENTRY_STACK_HEIGHT_MASK) << 1) |
             (count << 3);

    // clear out existing bci (IMPL_NOTE: is this necessary?)
    entry &= 0xFFFF007F;
    // set new bci
    entry |= (bci << 7);

    uint_field_put(entry_stat_offset(index), entry);

    GUARANTEE(get_stack_height(index) == height,
              "StackmapList:Invalid short stack height");
    GUARANTEE(get_locals(index) == count,
              "StackmapList:Invalid short locals");    
    GUARANTEE(get_bci(index) == bci, "StackmapList:set_bci failed");
  } else {
    TypeArray::Raw longmap(obj_field(entry_stat_offset(index))); 
    longmap().ushort_at_put(0, count);
    longmap().ushort_at_put(1, height);
    longmap().ushort_at_put(2, bci);

    GUARANTEE(get_stack_height(index) == height,
              "StackmapList:Invalid long map stack height");
    GUARANTEE(get_locals(index) == count, 
              "StackmapList:Invalid long map locals");
    GUARANTEE(get_bci(index) == bci, "StackmapList:Invalid long map bci");
  }
}
示例#3
0
void ClassInfo::print_value_on(Stream* st) {
#if USE_DEBUG_PRINTING
  st->print("ClassInfo ");

  ReturnOop raw_name = obj_field(name_offset());
  if (raw_name == Symbols::unknown()->obj()) {
    st->print("(renamed) ");
  }

  print_name_on(st);
#endif
}
示例#4
0
void ClassInfo::print_value_on(Stream* st) {
#if ENABLE_TTY_TRACE
  st->print("ClassInfo ");

  ReturnOop raw_name = obj_field(name_offset());
  if (raw_name == Symbols::unknown()->obj()) {
    st->print("(renamed) ");
  }

  print_name_on(st);
#endif
}
示例#5
0
ReturnOop ConstantPool::checked_symbol_at(int index JVM_TRAPS) {
  if (is_within_bounds(index)) {
    int offset = offset_from_index(index);
    if (ConstantTag::is_symbol(tag_value_at(index))) {
      Oop::Raw result(obj_field(offset));
      if (result().is_symbol()) {
        return result.obj();
      } else {
        return resolve_symbol_at_offset(offset JVM_NO_CHECK_AT_BOTTOM);
      }
    }
  }

  Throw::error(invalid_constant JVM_NO_CHECK_AT_BOTTOM);
  return 0;
}
示例#6
0
 ReturnOop inner_classes() const {
   return obj_field(inner_classes_offset());
 }
示例#7
0
 // Instance and static variable information, 5-tuples of shorts
 // [access, name index, sig index, initval index, offset]
 ReturnOop fields() const {
   return obj_field(fields_offset());
 }
示例#8
0
 ReturnOop message() {
   return obj_field(message_offset());
 }
示例#9
0
 ReturnOop previous() const {
   return obj_field(previous_offset());
 }
示例#10
0
 // Accessors for name
 ReturnOop get_name() {
   return obj_field(name_offset());
 }
示例#11
0
 // Returns the Method at index
 ReturnOop vtable_method_at(int index) {
   return obj_field(vtable_offset_from_index(index));
 }
示例#12
0
 ReturnOop next(){ return obj_field(next_offset());}
示例#13
0
 ReturnOop jni_frame() const {
   return obj_field(jni_frame_offset());
 }
示例#14
0
 ReturnOop profiler_info() {
   return obj_field(profiler_info_offset());
 }
示例#15
0
 ReturnOop step_info() {
   return obj_field(step_info_offset());
 }
示例#16
0
 ReturnOop wait_obj() const {
   return obj_field(wait_obj_offset());
 }
示例#17
0
 ReturnOop next_waiting() const {
   return obj_field(next_waiting_offset());
 }
示例#18
0
 // Constant pool for this class
 ReturnOop constants() const {
   return obj_field(constants_offset());
 }
示例#19
0
 // Interfaces this class declares locally to implement
 ReturnOop local_interfaces() const {
   return obj_field(local_interfaces_offset());
 }
示例#20
0
 ReturnOop data(){ return obj_field(data_offset());}
示例#21
0
 // Returns VM thread object corresponding to this java.lang.Thread instance.
 ReturnOop thread() {
   return obj_field(thread_offset());
 }
示例#22
0
 ReturnOop  cached_async_info() const {
   return obj_field(cached_async_info_offset()); 
 }
示例#23
0
 // ^VirtualStackFrame
 ReturnOop frame() {
   return obj_field(frame_offset());
 }
示例#24
0
 // Accessors for the global  list (all threads are linked in a single list)
 ReturnOop global_next( void ) const {
   return obj_field(global_next_offset());
 }
示例#25
0
ReturnOop ConstantPool::unresolved_klass_at(int index JVM_TRAPS) const {
  int offset = offset_from_checked_index(index JVM_ZCHECK_0(offset));
  cp_check_0(ConstantTag::is_unresolved_klass(tag_value_at(index)));
  return obj_field(offset);
}
示例#26
0
 ReturnOop data_buffer() {
   return obj_field(data_buffer_offset());
 }
示例#27
0
 inline ReturnOop tags() const {
   return obj_field(tags_offset());
 }
示例#28
0
 //
 // Accessors to name
 //
 ReturnOop name() const {
   return obj_field(name_offset());
 }
示例#29
0
 ReturnOop backtrace() {
   return obj_field(backtrace_offset());
 }
示例#30
0
 // Method array
 ReturnOop methods() const {
   return obj_field(methods_offset());
 }