54 // raw memory in hashtables.
55 assert(is_empty() || copy.is_empty(), "can only copy if empty");
56 _obj = copy._obj;
57 return *this;
58 }
59
60 void swap(OopHandle& copy) {
61 ::swap(_obj, copy._obj);
62 }
63
64 inline oop resolve() const;
65 inline oop peek() const;
66
67 bool is_empty() const { return _obj == nullptr; }
68
69 inline void release(OopStorage* storage);
70
71 inline void replace(oop obj);
72
73 inline oop xchg(oop new_value);
74
75 oop* ptr_raw() const { return _obj; }
76 };
77
78 #endif // SHARE_OOPS_OOPHANDLE_HPP
|
54 // raw memory in hashtables.
55 assert(is_empty() || copy.is_empty(), "can only copy if empty");
56 _obj = copy._obj;
57 return *this;
58 }
59
60 void swap(OopHandle& copy) {
61 ::swap(_obj, copy._obj);
62 }
63
64 inline oop resolve() const;
65 inline oop peek() const;
66
67 bool is_empty() const { return _obj == nullptr; }
68
69 inline void release(OopStorage* storage);
70
71 inline void replace(oop obj);
72
73 inline oop xchg(oop new_value);
74 inline oop cmpxchg(oop old_value, oop new_value);
75
76 oop* ptr_raw() const { return _obj; }
77 };
78
79 #endif // SHARE_OOPS_OOPHANDLE_HPP
|