FastLED 3.9.15
Loading...
Searching...
No Matches

◆ weakRefNoCreate()

template<typename T>
WeakPtr< T > fl::Ptr< T >::weakRefNoCreate ( ) const
inline

Definition at line 287 of file ptr_impl.h.

287 {
288 if (!referent_) {
289 return WeakPtr<T>();
290 }
291 WeakReferent *tmp = get()->getWeakPtr();
292 if (!tmp) {
293 return WeakPtr<T>();
294 }
295 T *referent = static_cast<T *>(tmp->getReferent());
296 if (!referent) {
297 return WeakPtr<T>();
298 }
299 // At this point, we know that our weak referent is valid.
300 // However, the template parameter ensures that either we have
301 // an exact type, or are at least down-castable of it.
303 out.mWeakPtr = tmp;
304 if (out.mWeakPtr) {
305 out.mWeakPtr->ref();
306 }
307 return out;
308}
T * referent_
Definition ptr.h:184
T * get() const
Definition ptr.h:168
Definition ptr.h:114

References fl::get(), fl::WeakReferent::getReferent(), fl::WeakPtr< T >::mWeakPtr, fl::WeakReferent::ref(), and referent_.

+ Here is the call graph for this function: