src/share/vm/runtime/fieldDescriptor.cpp

changeset 4037
da91efe96a93
parent 3879
634b8615a6ba
child 4251
18fb7da42534
     1.1 --- a/src/share/vm/runtime/fieldDescriptor.cpp	Fri Aug 31 16:39:35 2012 -0700
     1.2 +++ b/src/share/vm/runtime/fieldDescriptor.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 @@ -27,6 +27,7 @@
    1.11  #include "classfile/vmSymbols.hpp"
    1.12  #include "memory/resourceArea.hpp"
    1.13  #include "memory/universe.inline.hpp"
    1.14 +#include "oops/annotations.hpp"
    1.15  #include "oops/instanceKlass.hpp"
    1.16  #include "oops/fieldStreams.hpp"
    1.17  #include "runtime/fieldDescriptor.hpp"
    1.18 @@ -35,7 +36,7 @@
    1.19  
    1.20  
    1.21  oop fieldDescriptor::loader() const {
    1.22 -  return instanceKlass::cast(_cp->pool_holder())->class_loader();
    1.23 +  return InstanceKlass::cast(_cp->pool_holder())->class_loader();
    1.24  }
    1.25  
    1.26  Symbol* fieldDescriptor::generic_signature() const {
    1.27 @@ -44,7 +45,7 @@
    1.28    }
    1.29  
    1.30    int idx = 0;
    1.31 -  instanceKlass* ik = instanceKlass::cast(field_holder());
    1.32 +  InstanceKlass* ik = InstanceKlass::cast(field_holder());
    1.33    for (AllFieldStream fs(ik); !fs.done(); fs.next()) {
    1.34      if (idx == _index) {
    1.35        return fs.generic_signature();
    1.36 @@ -56,12 +57,12 @@
    1.37    return NULL;
    1.38  }
    1.39  
    1.40 -typeArrayOop fieldDescriptor::annotations() const {
    1.41 -  instanceKlass* ik = instanceKlass::cast(field_holder());
    1.42 -  objArrayOop md = ik->fields_annotations();
    1.43 +AnnotationArray* fieldDescriptor::annotations() const {
    1.44 +  InstanceKlass* ik = InstanceKlass::cast(field_holder());
    1.45 +  Array<AnnotationArray*>* md = ik->fields_annotations();
    1.46    if (md == NULL)
    1.47      return NULL;
    1.48 -  return typeArrayOop(md->obj_at(index()));
    1.49 +  return md->at(index());
    1.50  }
    1.51  
    1.52  constantTag fieldDescriptor::initial_value_tag() const {
    1.53 @@ -85,11 +86,10 @@
    1.54  }
    1.55  
    1.56  oop fieldDescriptor::string_initial_value(TRAPS) const {
    1.57 -  return constants()->string_at(initial_value_index(), CHECK_0);
    1.58 +  return constants()->uncached_string_at(initial_value_index(), CHECK_0);
    1.59  }
    1.60  
    1.61 -void fieldDescriptor::initialize(klassOop k, int index) {
    1.62 -  instanceKlass* ik = instanceKlass::cast(k);
    1.63 +void fieldDescriptor::initialize(InstanceKlass* ik, int index) {
    1.64    _cp = ik->constants();
    1.65    FieldInfo* f = ik->field(index);
    1.66    assert(!f->is_internal(), "regular Java fields only");

mercurial