]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Free StringExtItem and SimpleExtItem values correctly.
authorPeter Powell <petpow@saberuk.com>
Tue, 13 Aug 2019 12:35:05 +0000 (13:35 +0100)
committerPeter Powell <petpow@saberuk.com>
Tue, 13 Aug 2019 14:02:25 +0000 (15:02 +0100)
include/extensible.h
src/base.cpp

index 0efb1db5f133ab7fe782db983da7f4a74c2cd396..c24984f2678672ae1f1a4a3922451772bc8c901f 100644 (file)
@@ -210,22 +210,19 @@ class SimpleExtItem : public ExtensionItem
        {
                T* ptr = new T(value);
                T* old = static_cast<T*>(set_raw(container, ptr));
-               Del del;
-               del(old);
+               free(container, old);
        }
 
        inline void set(Extensible* container, T* value)
        {
                T* old = static_cast<T*>(set_raw(container, value));
-               Del del;
-               del(old);
+               free(container, old);
        }
 
        inline void unset(Extensible* container)
        {
                T* old = static_cast<T*>(unset_raw(container));
-               Del del;
-               del(old);
+               free(container, old);
        }
 
        void free(Extensible* container, void* item) CXX11_OVERRIDE
index b4ea09bc9b330f6393c0c821ad03e66560cc2788..ebd5214dbfee6d3738dfb6b31d15e68a3999f0fe 100644 (file)
@@ -369,13 +369,13 @@ void StringExtItem::FromNetwork(Extensible* container, const std::string& value)
 void StringExtItem::set(Extensible* container, const std::string& value)
 {
        void* old = set_raw(container, new std::string(value));
-       delete static_cast<std::string*>(old);
+       free(container, old);
 }
 
 void StringExtItem::unset(Extensible* container)
 {
        void* old = unset_raw(container);
-       delete static_cast<std::string*>(old);
+       free(container, old);
 }
 
 void StringExtItem::free(Extensible* container, void* item)