comparison src/share/vm/oops/objArrayKlass.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children d1605aabd0a1 37f87013dfd8
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
61 // Compute protection domain 61 // Compute protection domain
62 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); } 62 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); }
63 // Compute class loader 63 // Compute class loader
64 oop class_loader() const { return Klass::cast(bottom_klass())->class_loader(); } 64 oop class_loader() const { return Klass::cast(bottom_klass())->class_loader(); }
65 65
66 private:
67 // Either oop or narrowOop depending on UseCompressedOops.
68 // must be called from within objArrayKlass.cpp
69 template <class T> void do_copy(arrayOop s, T* src, arrayOop d,
70 T* dst, int length, TRAPS);
66 protected: 71 protected:
67 // Returns the objArrayKlass for n'th dimension. 72 // Returns the objArrayKlass for n'th dimension.
68 virtual klassOop array_klass_impl(bool or_null, int n, TRAPS); 73 virtual klassOop array_klass_impl(bool or_null, int n, TRAPS);
69 74
70 // Returns the array class with this class as element type. 75 // Returns the array class with this class as element type.
99 return oop_oop_iterate_v_m(obj, blk, mr); 104 return oop_oop_iterate_v_m(obj, blk, mr);
100 } 105 }
101 #define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ 106 #define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \
102 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \ 107 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \
103 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \ 108 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \
104 MemRegion mr); 109 MemRegion mr); \
110 int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* blk, \
111 int start, int end);
105 112
106 ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL) 113 ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
107 ALL_OOP_OOP_ITERATE_CLOSURES_3(ObjArrayKlass_OOP_OOP_ITERATE_DECL) 114 ALL_OOP_OOP_ITERATE_CLOSURES_3(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
108 115
109 // JVM support 116 // JVM support
122 public: 129 public:
123 // Verification 130 // Verification
124 const char* internal_name() const; 131 const char* internal_name() const;
125 void oop_verify_on(oop obj, outputStream* st); 132 void oop_verify_on(oop obj, outputStream* st);
126 void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty); 133 void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty);
134 void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty);
127 135
128 }; 136 };