22 *
23 */
24
25 #ifndef SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
26 #define SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
27
28 #include "oops/objArrayOop.hpp"
29 #include "oops/oop.inline.hpp"
30 #include "runtime/globals.hpp"
31
32 inline oop objArrayOopDesc::obj_at(int index) const {
33 // With UseCompressedOops decode the narrow oop in the objArray to an
34 // uncompressed oop. Otherwise this is simply a "*" operator.
35 if (UseCompressedOops) {
36 return load_decode_heap_oop(obj_at_addr<narrowOop>(index));
37 } else {
38 return load_decode_heap_oop(obj_at_addr<oop>(index));
39 }
40 }
41
42 inline void objArrayOopDesc::obj_at_put(int index, oop value) {
43 if (UseCompressedOops) {
44 oop_store(obj_at_addr<narrowOop>(index), value);
45 } else {
46 oop_store(obj_at_addr<oop>(index), value);
47 }
48 }
49
50 #endif // SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
|
22 *
23 */
24
25 #ifndef SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
26 #define SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
27
28 #include "oops/objArrayOop.hpp"
29 #include "oops/oop.inline.hpp"
30 #include "runtime/globals.hpp"
31
32 inline oop objArrayOopDesc::obj_at(int index) const {
33 // With UseCompressedOops decode the narrow oop in the objArray to an
34 // uncompressed oop. Otherwise this is simply a "*" operator.
35 if (UseCompressedOops) {
36 return load_decode_heap_oop(obj_at_addr<narrowOop>(index));
37 } else {
38 return load_decode_heap_oop(obj_at_addr<oop>(index));
39 }
40 }
41
42 void objArrayOopDesc::obj_at_put(int index, oop value) {
43 if (UseCompressedOops) {
44 oop_store(obj_at_addr<narrowOop>(index), value);
45 } else {
46 oop_store(obj_at_addr<oop>(index), value);
47 }
48 }
49
50 #endif // SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
|