50 static typeArrayOop new_intArray (int length, TRAPS) { return TypeArrayKlass::cast(Universe::intArrayKlassObj ())->allocate(length, THREAD); } 51 static typeArrayOop new_longArray (int length, TRAPS) { return TypeArrayKlass::cast(Universe::longArrayKlassObj ())->allocate(length, THREAD); } 52 53 // create java.lang.Object[] 54 static objArrayOop new_objectArray(int length, TRAPS) { 55 assert(Universe::objectArrayKlassObj() != NULL, "Too early?"); 56 return ObjArrayKlass:: 57 cast(Universe::objectArrayKlassObj())->allocate(length, THREAD); 58 } 59 60 static typeArrayOop new_charArray (const char* utf8_str, TRAPS); 61 static typeArrayOop new_tenured_charArray(int length, TRAPS); 62 63 static typeArrayOop new_typeArray(BasicType type, int length, TRAPS); 64 static typeArrayOop new_typeArray_nozero(BasicType type, int length, TRAPS); 65 static typeArrayOop new_symbolArray(int length, TRAPS); 66 67 // Regular object arrays 68 static objArrayOop new_objArray(Klass* klass, int length, TRAPS); 69 70 // Value arrays 71 static arrayOop new_valueArray(Klass* klass, int length, TRAPS); 72 73 // Object/Value array for klass 74 static arrayOop new_array(Klass* klass, int length, TRAPS); 75 76 // Helpers that return handles 77 static objArrayHandle new_objArray_handle(Klass* klass, int length, TRAPS); 78 static typeArrayHandle new_byteArray_handle(int length, TRAPS); 79 }; 80 81 #endif // SHARE_MEMORY_OOPFACTORY_HPP | 50 static typeArrayOop new_intArray (int length, TRAPS) { return TypeArrayKlass::cast(Universe::intArrayKlassObj ())->allocate(length, THREAD); } 51 static typeArrayOop new_longArray (int length, TRAPS) { return TypeArrayKlass::cast(Universe::longArrayKlassObj ())->allocate(length, THREAD); } 52 53 // create java.lang.Object[] 54 static objArrayOop new_objectArray(int length, TRAPS) { 55 assert(Universe::objectArrayKlassObj() != NULL, "Too early?"); 56 return ObjArrayKlass:: 57 cast(Universe::objectArrayKlassObj())->allocate(length, THREAD); 58 } 59 60 static typeArrayOop new_charArray (const char* utf8_str, TRAPS); 61 static typeArrayOop new_tenured_charArray(int length, TRAPS); 62 63 static typeArrayOop new_typeArray(BasicType type, int length, TRAPS); 64 static typeArrayOop new_typeArray_nozero(BasicType type, int length, TRAPS); 65 static typeArrayOop new_symbolArray(int length, TRAPS); 66 67 // Regular object arrays 68 static objArrayOop new_objArray(Klass* klass, int length, TRAPS); 69 70 // Value arrays... 71 // LWorld: 72 // - Q-type signature allocation should use this path. 73 // - L-type signature allocation should use new_objArray (even with value type elements) 74 // 75 // Method specifically creates ArrayStorageProperties::null_free and possibly flattened if possible 76 // i.e. valueArrayOop of flattening can be done, else objArrayOop with "null free" storage properties 77 static arrayOop new_valueArray(Klass* klass, int length, TRAPS); 78 79 // Helpers that return handles 80 static objArrayHandle new_objArray_handle(Klass* klass, int length, TRAPS); 81 static typeArrayHandle new_byteArray_handle(int length, TRAPS); 82 }; 83 84 #endif // SHARE_MEMORY_OOPFACTORY_HPP |