Mercurial > hg > truffle
comparison src/share/vm/oops/arrayKlass.cpp @ 1142:4ce7240d622c
6914300: ciEnv should export all well known classes
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Wed, 06 Jan 2010 14:22:39 -0800 |
parents | 89e0543e1737 |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1140:1f6d42899c3a | 1142:4ce7240d622c |
---|---|
41 | 41 |
42 klassOop arrayKlass::java_super() const { | 42 klassOop arrayKlass::java_super() const { |
43 if (super() == NULL) return NULL; // bootstrap case | 43 if (super() == NULL) return NULL; // bootstrap case |
44 // Array klasses have primary supertypes which are not reported to Java. | 44 // Array klasses have primary supertypes which are not reported to Java. |
45 // Example super chain: String[][] -> Object[][] -> Object[] -> Object | 45 // Example super chain: String[][] -> Object[][] -> Object[] -> Object |
46 return SystemDictionary::object_klass(); | 46 return SystemDictionary::Object_klass(); |
47 } | 47 } |
48 | 48 |
49 | 49 |
50 oop arrayKlass::multi_allocate(int rank, jint* sizes, TRAPS) { | 50 oop arrayKlass::multi_allocate(int rank, jint* sizes, TRAPS) { |
51 ShouldNotReachHere(); | 51 ShouldNotReachHere(); |
80 // target below becomes parsable | 80 // target below becomes parsable |
81 No_Safepoint_Verifier no_safepoint; | 81 No_Safepoint_Verifier no_safepoint; |
82 k = arrayKlassHandle(THREAD, base_klass()); | 82 k = arrayKlassHandle(THREAD, base_klass()); |
83 | 83 |
84 assert(!k()->is_parsable(), "not expecting parsability yet."); | 84 assert(!k()->is_parsable(), "not expecting parsability yet."); |
85 k->set_super(Universe::is_bootstrapping() ? (klassOop)NULL : SystemDictionary::object_klass()); | 85 k->set_super(Universe::is_bootstrapping() ? (klassOop)NULL : SystemDictionary::Object_klass()); |
86 k->set_layout_helper(Klass::_lh_neutral_value); | 86 k->set_layout_helper(Klass::_lh_neutral_value); |
87 k->set_dimension(1); | 87 k->set_dimension(1); |
88 k->set_higher_dimension(NULL); | 88 k->set_higher_dimension(NULL); |
89 k->set_lower_dimension(NULL); | 89 k->set_lower_dimension(NULL); |
90 k->set_component_mirror(NULL); | 90 k->set_component_mirror(NULL); |
115 return Universe::the_array_interfaces_array(); | 115 return Universe::the_array_interfaces_array(); |
116 } | 116 } |
117 | 117 |
118 bool arrayKlass::compute_is_subtype_of(klassOop k) { | 118 bool arrayKlass::compute_is_subtype_of(klassOop k) { |
119 // An array is a subtype of Serializable, Clonable, and Object | 119 // An array is a subtype of Serializable, Clonable, and Object |
120 return k == SystemDictionary::object_klass() | 120 return k == SystemDictionary::Object_klass() |
121 || k == SystemDictionary::cloneable_klass() | 121 || k == SystemDictionary::Cloneable_klass() |
122 || k == SystemDictionary::serializable_klass(); | 122 || k == SystemDictionary::Serializable_klass(); |
123 } | 123 } |
124 | 124 |
125 | 125 |
126 inline intptr_t* arrayKlass::start_of_vtable() const { | 126 inline intptr_t* arrayKlass::start_of_vtable() const { |
127 // all vtables start at the same place, that's why we use instanceKlass::header_size here | 127 // all vtables start at the same place, that's why we use instanceKlass::header_size here |