24
25 #include "precompiled.hpp"
26 #include "classfile/moduleEntry.hpp"
27 #include "classfile/packageEntry.hpp"
28 #include "classfile/symbolTable.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "gc/shared/collectedHeap.hpp"
32 #include "gc/shared/collectedHeap.inline.hpp"
33 #include "memory/metadataFactory.hpp"
34 #include "memory/resourceArea.hpp"
35 #include "memory/universe.hpp"
36 #include "oops/arrayKlass.inline.hpp"
37 #include "oops/instanceKlass.hpp"
38 #include "oops/klass.inline.hpp"
39 #include "oops/objArrayKlass.hpp"
40 #include "oops/oop.inline.hpp"
41 #include "oops/typeArrayKlass.inline.hpp"
42 #include "oops/typeArrayOop.inline.hpp"
43 #include "runtime/handles.inline.hpp"
44 #include "utilities/macros.hpp"
45
46 TypeArrayKlass* TypeArrayKlass::create_klass(BasicType type,
47 const char* name_str, TRAPS) {
48 Symbol* sym = NULL;
49 if (name_str != NULL) {
50 sym = SymbolTable::new_permanent_symbol(name_str);
51 }
52
53 ClassLoaderData* null_loader_data = ClassLoaderData::the_null_class_loader_data();
54
55 TypeArrayKlass* ak = TypeArrayKlass::allocate(null_loader_data, type, sym, CHECK_NULL);
56
57 // Call complete_create_array_klass after all instance variables have been initialized.
58 complete_create_array_klass(ak, ak->super(), ModuleEntryTable::javabase_moduleEntry(), CHECK_NULL);
59
60 // Add all classes to our internal class loader list here,
61 // including classes in the bootstrap (NULL) class loader.
62 // Do this step after creating the mirror so that if the
63 // mirror creation fails, loaded_classes_do() doesn't find
|
24
25 #include "precompiled.hpp"
26 #include "classfile/moduleEntry.hpp"
27 #include "classfile/packageEntry.hpp"
28 #include "classfile/symbolTable.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "gc/shared/collectedHeap.hpp"
32 #include "gc/shared/collectedHeap.inline.hpp"
33 #include "memory/metadataFactory.hpp"
34 #include "memory/resourceArea.hpp"
35 #include "memory/universe.hpp"
36 #include "oops/arrayKlass.inline.hpp"
37 #include "oops/instanceKlass.hpp"
38 #include "oops/klass.inline.hpp"
39 #include "oops/objArrayKlass.hpp"
40 #include "oops/oop.inline.hpp"
41 #include "oops/typeArrayKlass.inline.hpp"
42 #include "oops/typeArrayOop.inline.hpp"
43 #include "runtime/handles.inline.hpp"
44 #include "runtime/mutexLocker.inline.hpp"
45 #include "utilities/macros.hpp"
46
47 TypeArrayKlass* TypeArrayKlass::create_klass(BasicType type,
48 const char* name_str, TRAPS) {
49 Symbol* sym = NULL;
50 if (name_str != NULL) {
51 sym = SymbolTable::new_permanent_symbol(name_str);
52 }
53
54 ClassLoaderData* null_loader_data = ClassLoaderData::the_null_class_loader_data();
55
56 TypeArrayKlass* ak = TypeArrayKlass::allocate(null_loader_data, type, sym, CHECK_NULL);
57
58 // Call complete_create_array_klass after all instance variables have been initialized.
59 complete_create_array_klass(ak, ak->super(), ModuleEntryTable::javabase_moduleEntry(), CHECK_NULL);
60
61 // Add all classes to our internal class loader list here,
62 // including classes in the bootstrap (NULL) class loader.
63 // Do this step after creating the mirror so that if the
64 // mirror creation fails, loaded_classes_do() doesn't find
|