21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "ci/ciInstanceKlass.hpp"
27 #include "ci/ciObjArrayKlass.hpp"
28 #include "ci/ciSymbol.hpp"
29 #include "ci/ciUtilities.hpp"
30 #include "oops/objArrayKlass.hpp"
31
32 // ciObjArrayKlass
33 //
34 // This class represents a Klass* in the HotSpot virtual machine
35 // whose Klass part is an ObjArrayKlass.
36
37 // ------------------------------------------------------------------
38 // ciObjArrayKlass::ciObjArrayKlass
39 //
40 // Constructor for loaded object array klasses.
41 ciObjArrayKlass::ciObjArrayKlass(KlassHandle h_k) : ciArrayKlass(h_k) {
42 assert(get_Klass()->is_objArray_klass(), "wrong type");
43 Klass* element_Klass = get_ObjArrayKlass()->bottom_klass();
44 _base_element_klass = CURRENT_ENV->get_klass(element_Klass);
45 assert(_base_element_klass->is_instance_klass() ||
46 _base_element_klass->is_type_array_klass(), "bad base klass");
47 if (dimension() == 1) {
48 _element_klass = _base_element_klass;
49 } else {
50 _element_klass = NULL;
51 }
52 if (!ciObjectFactory::is_initialized()) {
53 assert(_element_klass->is_java_lang_Object(), "only arrays of object are shared");
54 }
55 }
56
57 // ------------------------------------------------------------------
58 // ciObjArrayKlass::ciObjArrayKlass
59 //
60 // Constructor for unloaded object array klasses.
61 ciObjArrayKlass::ciObjArrayKlass(ciSymbol* array_name,
|
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "ci/ciInstanceKlass.hpp"
27 #include "ci/ciObjArrayKlass.hpp"
28 #include "ci/ciSymbol.hpp"
29 #include "ci/ciUtilities.hpp"
30 #include "oops/objArrayKlass.hpp"
31
32 // ciObjArrayKlass
33 //
34 // This class represents a Klass* in the HotSpot virtual machine
35 // whose Klass part is an ObjArrayKlass.
36
37 // ------------------------------------------------------------------
38 // ciObjArrayKlass::ciObjArrayKlass
39 //
40 // Constructor for loaded object array klasses.
41 ciObjArrayKlass::ciObjArrayKlass(Klass* k) : ciArrayKlass(k) {
42 assert(get_Klass()->is_objArray_klass(), "wrong type");
43 Klass* element_Klass = get_ObjArrayKlass()->bottom_klass();
44 _base_element_klass = CURRENT_ENV->get_klass(element_Klass);
45 assert(_base_element_klass->is_instance_klass() ||
46 _base_element_klass->is_type_array_klass(), "bad base klass");
47 if (dimension() == 1) {
48 _element_klass = _base_element_klass;
49 } else {
50 _element_klass = NULL;
51 }
52 if (!ciObjectFactory::is_initialized()) {
53 assert(_element_klass->is_java_lang_Object(), "only arrays of object are shared");
54 }
55 }
56
57 // ------------------------------------------------------------------
58 // ciObjArrayKlass::ciObjArrayKlass
59 //
60 // Constructor for unloaded object array klasses.
61 ciObjArrayKlass::ciObjArrayKlass(ciSymbol* array_name,
|