1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:07:35 +00:00

AK: Fix some WeakPtr copy constructor variants not copying the link

This commit is contained in:
Tom 2020-12-29 18:11:12 -07:00 committed by Andreas Kling
parent 54eeb8ee9a
commit 34b3d92a13
2 changed files with 4 additions and 3 deletions

View file

@ -91,7 +91,7 @@ public:
{ {
object.do_while_locked([&](U* obj) { object.do_while_locked([&](U* obj) {
if (obj) if (obj)
obj->template make_weak_ptr<U>().take_link(); m_link = obj->template make_weak_ptr<U>().take_link();
}); });
} }
@ -100,7 +100,7 @@ public:
{ {
object.do_while_locked([&](U* obj) { object.do_while_locked([&](U* obj) {
if (obj) if (obj)
obj->template make_weak_ptr<U>().take_link(); m_link = obj->template make_weak_ptr<U>().take_link();
}); });
} }

View file

@ -30,6 +30,7 @@
#include "Atomic.h" #include "Atomic.h"
#include "RefCounted.h" #include "RefCounted.h"
#include "RefPtr.h" #include "RefPtr.h"
#include "StdLibExtras.h"
#ifdef KERNEL #ifdef KERNEL
# include <Kernel/Arch/i386/CPU.h> # include <Kernel/Arch/i386/CPU.h>
#endif #endif
@ -52,7 +53,7 @@ class WeakLink : public RefCounted<WeakLink> {
friend class WeakPtr; friend class WeakPtr;
public: public:
template<typename T, typename PtrTraits = RefPtrTraits<T>> template<typename T, typename PtrTraits = RefPtrTraits<T>, typename EnableIf<IsBaseOf<RefCountedBase, T>::value>::Type* = nullptr>
RefPtr<T, PtrTraits> strong_ref() const RefPtr<T, PtrTraits> strong_ref() const
{ {
RefPtr<T, PtrTraits> ref; RefPtr<T, PtrTraits> ref;