Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/objArrayKlass.hpp @ 6831:d8ce2825b193
8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Summary: Capitalize these metadata types (and objArrayKlass)
Reviewed-by: stefank, twisti, kvn
author | coleenp |
---|---|
date | Sat, 29 Sep 2012 06:40:00 -0400 |
parents | da91efe96a93 |
children | 070d523b96a7 |
comparison
equal
deleted
inserted
replaced
6811:1b582b1bf7cb | 6831:d8ce2825b193 |
---|---|
27 | 27 |
28 #include "classfile/classLoaderData.hpp" | 28 #include "classfile/classLoaderData.hpp" |
29 #include "memory/specialized_oop_closures.hpp" | 29 #include "memory/specialized_oop_closures.hpp" |
30 #include "oops/arrayKlass.hpp" | 30 #include "oops/arrayKlass.hpp" |
31 | 31 |
32 // objArrayKlass is the klass for objArrays | 32 // ObjArrayKlass is the klass for objArrays |
33 | 33 |
34 class objArrayKlass : public arrayKlass { | 34 class ObjArrayKlass : public ArrayKlass { |
35 friend class VMStructs; | 35 friend class VMStructs; |
36 private: | 36 private: |
37 Klass* _element_klass; // The klass of the elements of this array type | 37 Klass* _element_klass; // The klass of the elements of this array type |
38 Klass* _bottom_klass; // The one-dimensional type (InstanceKlass or typeArrayKlass) | 38 Klass* _bottom_klass; // The one-dimensional type (InstanceKlass or TypeArrayKlass) |
39 | 39 |
40 // Constructor | 40 // Constructor |
41 objArrayKlass(int n, KlassHandle element_klass, Symbol* name); | 41 ObjArrayKlass(int n, KlassHandle element_klass, Symbol* name); |
42 static objArrayKlass* allocate(ClassLoaderData* loader_data, int n, KlassHandle klass_handle, Symbol* name, TRAPS); | 42 static ObjArrayKlass* allocate(ClassLoaderData* loader_data, int n, KlassHandle klass_handle, Symbol* name, TRAPS); |
43 public: | 43 public: |
44 // For dummy objects | 44 // For dummy objects |
45 objArrayKlass() {} | 45 ObjArrayKlass() {} |
46 | 46 |
47 // Instance variables | 47 // Instance variables |
48 Klass* element_klass() const { return _element_klass; } | 48 Klass* element_klass() const { return _element_klass; } |
49 void set_element_klass(Klass* k) { _element_klass = k; } | 49 void set_element_klass(Klass* k) { _element_klass = k; } |
50 Klass** element_klass_addr() { return &_element_klass; } | 50 Klass** element_klass_addr() { return &_element_klass; } |
52 Klass* bottom_klass() const { return _bottom_klass; } | 52 Klass* bottom_klass() const { return _bottom_klass; } |
53 void set_bottom_klass(Klass* k) { _bottom_klass = k; } | 53 void set_bottom_klass(Klass* k) { _bottom_klass = k; } |
54 Klass** bottom_klass_addr() { return &_bottom_klass; } | 54 Klass** bottom_klass_addr() { return &_bottom_klass; } |
55 | 55 |
56 // Compiler/Interpreter offset | 56 // Compiler/Interpreter offset |
57 static ByteSize element_klass_offset() { return in_ByteSize(offset_of(objArrayKlass, _element_klass)); } | 57 static ByteSize element_klass_offset() { return in_ByteSize(offset_of(ObjArrayKlass, _element_klass)); } |
58 | 58 |
59 // Dispatched operation | 59 // Dispatched operation |
60 bool can_be_primary_super_slow() const; | 60 bool can_be_primary_super_slow() const; |
61 GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots); | 61 GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots); |
62 bool compute_is_subtype_of(Klass* k); | 62 bool compute_is_subtype_of(Klass* k); |
76 // Compute protection domain | 76 // Compute protection domain |
77 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); } | 77 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); } |
78 | 78 |
79 private: | 79 private: |
80 // Either oop or narrowOop depending on UseCompressedOops. | 80 // Either oop or narrowOop depending on UseCompressedOops. |
81 // must be called from within objArrayKlass.cpp | 81 // must be called from within ObjArrayKlass.cpp |
82 template <class T> void do_copy(arrayOop s, T* src, arrayOop d, | 82 template <class T> void do_copy(arrayOop s, T* src, arrayOop d, |
83 T* dst, int length, TRAPS); | 83 T* dst, int length, TRAPS); |
84 protected: | 84 protected: |
85 // Returns the objArrayKlass for n'th dimension. | 85 // Returns the ObjArrayKlass for n'th dimension. |
86 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS); | 86 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS); |
87 | 87 |
88 // Returns the array class with this class as element type. | 88 // Returns the array class with this class as element type. |
89 virtual Klass* array_klass_impl(bool or_null, TRAPS); | 89 virtual Klass* array_klass_impl(bool or_null, TRAPS); |
90 | 90 |
91 public: | 91 public: |
92 // Casting from Klass* | 92 // Casting from Klass* |
93 static objArrayKlass* cast(Klass* k) { | 93 static ObjArrayKlass* cast(Klass* k) { |
94 assert(k->oop_is_objArray(), "cast to objArrayKlass"); | 94 assert(k->oop_is_objArray(), "cast to ObjArrayKlass"); |
95 return (objArrayKlass*) k; | 95 return (ObjArrayKlass*) k; |
96 } | 96 } |
97 | 97 |
98 // Sizing | 98 // Sizing |
99 static int header_size() { return sizeof(objArrayKlass)/HeapWordSize; } | 99 static int header_size() { return sizeof(ObjArrayKlass)/HeapWordSize; } |
100 int size() const { return arrayKlass::static_size(header_size()); } | 100 int size() const { return ArrayKlass::static_size(header_size()); } |
101 | 101 |
102 // Initialization (virtual from Klass) | 102 // Initialization (virtual from Klass) |
103 void initialize(TRAPS); | 103 void initialize(TRAPS); |
104 | 104 |
105 // Garbage collection | 105 // Garbage collection |