summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-11-01 00:15:28 -0400
committerAdam <Adam@anope.org>2011-11-01 00:15:28 -0400
commit22b7d9fbeebe67467427fcb3d015e1aa74aafd80 (patch)
treedb582f83b3f01dbcb4d668ce2e9007ad6477afc8
parent9dd71c427d20dbf3c74d508218236b8d63f9ec97 (diff)
Added a copy constructor to dynamic_reference to allow references to reference other references correctly
-rw-r--r--include/anope.h8
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)