comparison src/share/vm/oops/arrayKlass.cpp @ 1339:09ac706c2623

Merge
author asaha
date Wed, 24 Mar 2010 17:16:33 -0700
parents 4ce7240d622c
children c18cbe5936b8
comparison
equal deleted inserted replaced
1338:f5dd08ad65df 1339:09ac706c2623
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