90 assert (klass->klass_part()->oop_is_instance(), "new object array with klass not an instanceKlass"); |
90 assert (klass->klass_part()->oop_is_instance(), "new object array with klass not an instanceKlass"); |
91 return ((instanceKlass*)klass->klass_part())->allocate_objArray(1, length, THREAD); |
91 return ((instanceKlass*)klass->klass_part())->allocate_objArray(1, length, THREAD); |
92 } |
92 } |
93 } |
93 } |
94 |
94 |
95 objArrayOop oopFactory::new_system_objArray(int length, bool in_perm_gen, TRAPS) { |
95 objArrayOop oopFactory::new_system_objArray(int length, TRAPS) { |
96 int size = objArrayOopDesc::object_size(length); |
96 int size = objArrayOopDesc::object_size(length); |
97 KlassHandle klass (THREAD, Universe::systemObjArrayKlassObj()); |
97 KlassHandle klass (THREAD, Universe::systemObjArrayKlassObj()); |
98 oop o; |
98 objArrayOop o = (objArrayOop) |
99 if (in_perm_gen) { |
99 Universe::heap()->permanent_array_allocate(klass, size, length, CHECK_NULL); |
100 o = Universe::heap()->permanent_array_allocate(klass, size, length, CHECK_NULL); |
|
101 } else { |
|
102 o = Universe::heap()->array_allocate(klass, size, length, CHECK_NULL); |
|
103 } |
|
104 // initialization not needed, allocated cleared |
100 // initialization not needed, allocated cleared |
105 return (objArrayOop) o; |
|
106 } |
|
107 |
|
108 objArrayOop oopFactory::new_system_objArray(int length, TRAPS) { |
|
109 objArrayOop o = oopFactory::new_system_objArray(length, true, CHECK_NULL); |
|
110 return o; |
101 return o; |
111 } |
102 } |
112 |
103 |
113 |
104 |
114 constantPoolOop oopFactory::new_constantPool(int length, |
105 constantPoolOop oopFactory::new_constantPool(int length, |