diff options
author | Adam <Adam@anope.org> | 2011-11-01 00:15:28 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-11-01 00:15:28 -0400 |
commit | 22b7d9fbeebe67467427fcb3d015e1aa74aafd80 (patch) | |
tree | db582f83b3f01dbcb4d668ce2e9007ad6477afc8 | |
parent | 9dd71c427d20dbf3c74d508218236b8d63f9ec97 (diff) |
Added a copy constructor to dynamic_reference to allow references to reference other references correctly
-rw-r--r-- | include/anope.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/anope.h b/include/anope.h index 3eec3d4e4..60eb59775 100644 --- a/include/anope.h +++ b/include/anope.h @@ -484,7 +484,7 @@ class CoreExport Base void DelReference(dynamic_reference_base *r); }; -class dynamic_reference_base : public Base +class dynamic_reference_base { protected: bool invalid; @@ -506,6 +506,12 @@ class dynamic_reference : public dynamic_reference_base ref->AddReference(this); } + dynamic_reference(const dynamic_reference<T> &obj) : ref(obj.ref) + { + if (ref) + ref->AddReference(this); + } + virtual ~dynamic_reference() { if (this->invalid) |