summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2018-08-12 13:29:09 +0100
committerPeter Powell <petpow@saberuk.com>2018-08-12 13:29:09 +0100
commitf8a9b6ba4ae0b4b3c7b2a408332230dd82eb4608 (patch)
tree775ba30c21683d6b72bfe5c25ce96a213a34da42 /src
parent02838a09396a3626b61263791570e96324563fa0 (diff)
Pass the Extensible container to ExtensionItem::free().
Diffstat (limited to 'src')
-rw-r--r--src/base.cpp8
-rw-r--r--src/coremods/core_channel/invite.h4
-rw-r--r--src/modules/m_callerid.cpp4
-rw-r--r--src/modules/m_monitor.cpp4
-rw-r--r--src/modules/m_sslinfo.cpp2
-rw-r--r--src/modules/m_topiclock.cpp2
6 files changed, 12 insertions, 12 deletions
diff --git a/src/base.cpp b/src/base.cpp
index 0ff3fbe4c..f698bad2e 100644
--- a/src/base.cpp
+++ b/src/base.cpp
@@ -186,7 +186,7 @@ void Extensible::doUnhookExtensions(const std::vector<reference<ExtensionItem> >
ExtensibleStore::iterator e = extensions.find(item);
if (e != extensions.end())
{
- item->free(e->second);
+ item->free(this, e->second);
extensions.erase(e);
}
}
@@ -208,7 +208,7 @@ void Extensible::FreeAllExtItems()
{
for(ExtensibleStore::iterator i = extensions.begin(); i != extensions.end(); ++i)
{
- i->first->free(i->second);
+ i->first->free(this, i->second);
}
extensions.clear();
}
@@ -294,7 +294,7 @@ intptr_t LocalIntExt::set(Extensible* container, intptr_t value)
return reinterpret_cast<intptr_t>(unset_raw(container));
}
-void LocalIntExt::free(void*)
+void LocalIntExt::free(Extensible* container, void* item)
{
}
@@ -337,7 +337,7 @@ void StringExtItem::unset(Extensible* container)
delete static_cast<std::string*>(old);
}
-void StringExtItem::free(void* item)
+void StringExtItem::free(Extensible* container, void* item)
{
delete static_cast<std::string*>(item);
}
diff --git a/src/coremods/core_channel/invite.h b/src/coremods/core_channel/invite.h
index 2a99ec2df..19e3861f8 100644
--- a/src/coremods/core_channel/invite.h
+++ b/src/coremods/core_channel/invite.h
@@ -66,10 +66,10 @@ class Invite::ExtItem : public ExtensionItem
{
void* store = unset_raw(ext);
if (store)
- free(store);
+ free(ext, store);
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
Store<T>* store = static_cast<Store<T>*>(item);
for (typename Store<T>::List::iterator i = store->invites.begin(); i != store->invites.end(); )
diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp
index b0ec3b8ff..f50bdeedf 100644
--- a/src/modules/m_callerid.cpp
+++ b/src/modules/m_callerid.cpp
@@ -91,7 +91,7 @@ struct CallerIDExtInfo : public ExtensionItem
void* old = get_raw(container);
if (old)
- this->free(old);
+ this->free(NULL, old);
callerid_data* dat = new callerid_data;
set_raw(container, dat);
@@ -125,7 +125,7 @@ struct CallerIDExtInfo : public ExtensionItem
return dat;
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
callerid_data* dat = static_cast<callerid_data*>(item);
diff --git a/src/modules/m_monitor.cpp b/src/modules/m_monitor.cpp
index 38e7ccc3e..fd72c7320 100644
--- a/src/modules/m_monitor.cpp
+++ b/src/modules/m_monitor.cpp
@@ -79,7 +79,7 @@ class IRCv3::Monitor::Manager
void unset(Extensible* container)
{
- free(unset_raw(container));
+ free(container, unset_raw(container));
}
std::string serialize(SerializeFormat format, const Extensible* container, void* item) const CXX11_OVERRIDE
@@ -101,7 +101,7 @@ class IRCv3::Monitor::Manager
void unserialize(SerializeFormat format, Extensible* container, const std::string& value) CXX11_OVERRIDE;
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
delete static_cast<ExtData*>(item);
}
diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp
index 6f679a871..6d0a84249 100644
--- a/src/modules/m_sslinfo.cpp
+++ b/src/modules/m_sslinfo.cpp
@@ -79,7 +79,7 @@ class SSLCertExt : public ExtensionItem {
}
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
ssl_cert* old = static_cast<ssl_cert*>(item);
if (old && old->refcount_dec())
diff --git a/src/modules/m_topiclock.cpp b/src/modules/m_topiclock.cpp
index cbe524408..c65f27668 100644
--- a/src/modules/m_topiclock.cpp
+++ b/src/modules/m_topiclock.cpp
@@ -115,7 +115,7 @@ class FlagExtItem : public ExtensionItem
unset_raw(container);
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
// nothing to free
}