34 #include "memory/resourceArea.hpp"
35 #include "memory/universe.inline.hpp"
36 #include "oops/instanceKlass.hpp"
37 #include "oops/klass.inline.hpp"
38 #include "oops/objArrayKlass.hpp"
39 #include "oops/objArrayKlass.inline.hpp"
40 #include "oops/objArrayOop.hpp"
41 #include "oops/oop.inline.hpp"
42 #include "oops/oop.inline2.hpp"
43 #include "oops/symbol.hpp"
44 #include "runtime/handles.inline.hpp"
45 #include "runtime/mutexLocker.hpp"
46 #include "runtime/orderAccess.inline.hpp"
47 #include "utilities/copy.hpp"
48 #include "utilities/macros.hpp"
49 #if INCLUDE_ALL_GCS
50 #include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
51 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
52 #include "gc_implementation/g1/g1OopClosures.inline.hpp"
53 #include "gc_implementation/g1/g1RemSet.inline.hpp"
54 #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
55 #include "gc_implementation/parNew/parOopClosures.inline.hpp"
56 #include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
57 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
58 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
59 #include "oops/oop.pcgc.inline.hpp"
60 #endif // INCLUDE_ALL_GCS
61
62 ObjArrayKlass* ObjArrayKlass::allocate(ClassLoaderData* loader_data, int n, KlassHandle klass_handle, Symbol* name, TRAPS) {
63 assert(ObjArrayKlass::header_size() <= InstanceKlass::header_size(),
64 "array klasses must be same size as InstanceKlass");
65
66 int size = ArrayKlass::static_size(ObjArrayKlass::header_size());
67
68 return new (loader_data, size, THREAD) ObjArrayKlass(n, klass_handle, name);
69 }
70
71 Klass* ObjArrayKlass::allocate_objArray_klass(ClassLoaderData* loader_data,
72 int n, KlassHandle element_klass, TRAPS) {
73
74 // Eagerly allocate the direct array supertype.
|
34 #include "memory/resourceArea.hpp"
35 #include "memory/universe.inline.hpp"
36 #include "oops/instanceKlass.hpp"
37 #include "oops/klass.inline.hpp"
38 #include "oops/objArrayKlass.hpp"
39 #include "oops/objArrayKlass.inline.hpp"
40 #include "oops/objArrayOop.hpp"
41 #include "oops/oop.inline.hpp"
42 #include "oops/oop.inline2.hpp"
43 #include "oops/symbol.hpp"
44 #include "runtime/handles.inline.hpp"
45 #include "runtime/mutexLocker.hpp"
46 #include "runtime/orderAccess.inline.hpp"
47 #include "utilities/copy.hpp"
48 #include "utilities/macros.hpp"
49 #if INCLUDE_ALL_GCS
50 #include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
51 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
52 #include "gc_implementation/g1/g1OopClosures.inline.hpp"
53 #include "gc_implementation/g1/g1RemSet.inline.hpp"
54 #include "gc_implementation/g1/heapRegionManager.inline.hpp"
55 #include "gc_implementation/parNew/parOopClosures.inline.hpp"
56 #include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
57 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
58 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
59 #include "oops/oop.pcgc.inline.hpp"
60 #endif // INCLUDE_ALL_GCS
61
62 ObjArrayKlass* ObjArrayKlass::allocate(ClassLoaderData* loader_data, int n, KlassHandle klass_handle, Symbol* name, TRAPS) {
63 assert(ObjArrayKlass::header_size() <= InstanceKlass::header_size(),
64 "array klasses must be same size as InstanceKlass");
65
66 int size = ArrayKlass::static_size(ObjArrayKlass::header_size());
67
68 return new (loader_data, size, THREAD) ObjArrayKlass(n, klass_handle, name);
69 }
70
71 Klass* ObjArrayKlass::allocate_objArray_klass(ClassLoaderData* loader_data,
72 int n, KlassHandle element_klass, TRAPS) {
73
74 // Eagerly allocate the direct array supertype.
|