summaryrefslogtreecommitdiff
path: root/AK/Weakable.h
diff options
context:
space:
mode:
Diffstat (limited to 'AK/Weakable.h')
-rw-r--r--AK/Weakable.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/AK/Weakable.h b/AK/Weakable.h
index c9590c2be1..d5b55050d3 100644
--- a/AK/Weakable.h
+++ b/AK/Weakable.h
@@ -1,23 +1,29 @@
#pragma once
#include "Assertions.h"
-#include "Retainable.h"
#include "RetainPtr.h"
+#include "Retainable.h"
namespace AK {
-template<typename T> class Weakable;
-template<typename T> class WeakPtr;
+template<typename T>
+class Weakable;
+template<typename T>
+class WeakPtr;
template<typename T>
class WeakLink : public Retainable<WeakLink<T>> {
friend class Weakable<T>;
+
public:
T* ptr() { return static_cast<T*>(m_ptr); }
const T* ptr() const { return static_cast<const T*>(m_ptr); }
private:
- explicit WeakLink(T& weakable) : m_ptr(&weakable) { }
+ explicit WeakLink(T& weakable)
+ : m_ptr(&weakable)
+ {
+ }
T* m_ptr;
};
@@ -25,11 +31,12 @@ template<typename T>
class Weakable {
private:
class Link;
+
public:
WeakPtr<T> make_weak_ptr();
protected:
- Weakable() { }
+ Weakable() {}
~Weakable()
{