26 #define SHARE_VM_OOPS_ARRAYKLASS_HPP |
26 #define SHARE_VM_OOPS_ARRAYKLASS_HPP |
27 |
27 |
28 #include "memory/universe.hpp" |
28 #include "memory/universe.hpp" |
29 #include "oops/klass.hpp" |
29 #include "oops/klass.hpp" |
30 |
30 |
|
31 class fieldDescriptor; |
31 class klassVtable; |
32 class klassVtable; |
32 |
33 |
33 // ArrayKlass is the abstract baseclass for all array classes |
34 // ArrayKlass is the abstract baseclass for all array classes |
34 |
35 |
35 class ArrayKlass: public Klass { |
36 class ArrayKlass: public Klass { |
82 // Allocation |
83 // Allocation |
83 // Sizes points to the first dimension of the array, subsequent dimensions |
84 // Sizes points to the first dimension of the array, subsequent dimensions |
84 // are always in higher memory. The callers of these set that up. |
85 // are always in higher memory. The callers of these set that up. |
85 virtual oop multi_allocate(int rank, jint* sizes, TRAPS); |
86 virtual oop multi_allocate(int rank, jint* sizes, TRAPS); |
86 objArrayOop allocate_arrayArray(int n, int length, TRAPS); |
87 objArrayOop allocate_arrayArray(int n, int length, TRAPS); |
|
88 |
|
89 // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined |
|
90 Klass* find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const; |
87 |
91 |
88 // Lookup operations |
92 // Lookup operations |
89 Method* uncached_lookup_method(Symbol* name, Symbol* signature, MethodLookupMode mode) const; |
93 Method* uncached_lookup_method(Symbol* name, Symbol* signature, MethodLookupMode mode) const; |
90 |
94 |
91 // Casting from Klass* |
95 // Casting from Klass* |