Lines Matching refs:Obj
130 /// Obj->Retain()/Obj->Release(). Release() is required to destroy
137 T* Obj;
142 explicit IntrusiveRefCntPtr() : Obj(nullptr) {}
144 IntrusiveRefCntPtr(T* obj) : Obj(obj) {
148 IntrusiveRefCntPtr(const IntrusiveRefCntPtr& S) : Obj(S.Obj) {
152 IntrusiveRefCntPtr(IntrusiveRefCntPtr&& S) : Obj(S.Obj) {
153 S.Obj = nullptr;
157 IntrusiveRefCntPtr(IntrusiveRefCntPtr<X>&& S) : Obj(S.get()) {
158 S.Obj = 0;
163 : Obj(S.get()) {
174 T& operator*() const { return *Obj; }
176 T* operator->() const { return Obj; }
178 T* get() const { return Obj; }
180 LLVM_EXPLICIT operator bool() const { return Obj; }
183 T* tmp = other.Obj;
184 other.Obj = Obj;
185 Obj = tmp;
190 Obj = nullptr;
194 Obj = 0;
198 void retain() { if (Obj) IntrusiveRefCntPtrInfo<T>::retain(Obj); }
199 void release() { if (Obj) IntrusiveRefCntPtrInfo<T>::release(Obj); }