Home | History | Annotate | Download | only in runtime

Lines Matching full:handle

30 template<class T> class Handle;
32 // Handles are memory locations that contain GC roots. As the mirror::Object*s within a handle are
34 // a wrap pointer. Handles are generally allocated within HandleScopes. Handle is a super-class
37 class Handle : public ValueObject {
39 Handle() : reference_(nullptr) {
42 ALWAYS_INLINE Handle(const Handle<T>& handle) : reference_(handle.reference_) {
45 ALWAYS_INLINE Handle<T>& operator=(const Handle<T>& handle) {
46 reference_ = handle.reference_;
50 ALWAYS_INLINE explicit Handle(StackReference<T>* reference) : reference_(reference) {
85 explicit Handle(StackReference<S>* reference)
89 explicit Handle(const Handle<S>& handle)
90 : reference_(handle.reference_) {
97 template<class S> friend class Handle;
105 class MutableHandle : public Handle<T> {
110 ALWAYS_INLINE MutableHandle(const MutableHandle<T>& handle)
112 : Handle<T>(handle.reference_) {
115 ALWAYS_INLINE MutableHandle<T>& operator=(const MutableHandle<T>& handle)
117 Handle<T>::operator=(handle);
123 : Handle<T>(reference) {
127 StackReference<mirror::Object>* ref = Handle<T>::GetReference();
134 explicit MutableHandle(const MutableHandle<S>& handle) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_)
135 : Handle<T>(handle) {
140 : Handle<T>(reference) {
150 // A special case of Handle that only holds references to null.
152 class NullHandle : public Handle<T> {
154 NullHandle() : Handle<T>(&null_ref_) {