]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/extensible.h
Release v3.0.0 release candidate 2.
[user/henk/code/inspircd.git] / include / extensible.h
index afb1cd5b66e0097def46c36c18e509e341152b19..f88ede4611805e449f6c690864f0327b7abe09cf 100644 (file)
@@ -65,7 +65,7 @@ class CoreExport ExtensionItem : public ServiceProvider, public usecountbase
         */
        virtual void unserialize(SerializeFormat format, Extensible* container, const std::string& value) = 0;
        /** Free the item */
-       virtual void free(void* item) = 0;
+       virtual void free(Extensible* container, void* item) = 0;
 
        /** Register this object in the ExtensionManager
         */
@@ -147,7 +147,7 @@ class CoreExport LocalExtItem : public ExtensionItem
        virtual ~LocalExtItem();
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const CXX11_OVERRIDE;
        void unserialize(SerializeFormat format, Extensible* container, const std::string& value) CXX11_OVERRIDE;
-       void free(void* item) CXX11_OVERRIDE = 0;
+       void free(Extensible* container, void* item) CXX11_OVERRIDE = 0;
 };
 
 template <typename T, typename Del = stdalgo::defaultdeleter<T> >
@@ -190,7 +190,7 @@ class SimpleExtItem : public LocalExtItem
                del(old);
        }
 
-       void free(void* item) CXX11_OVERRIDE
+       void free(Extensible* container, void* item) CXX11_OVERRIDE
        {
                Del del;
                del(static_cast<T*>(item));
@@ -216,7 +216,7 @@ class CoreExport LocalIntExt : public LocalExtItem
        intptr_t get(const Extensible* container) const;
        intptr_t set(Extensible* container, intptr_t value);
        void unset(Extensible* container) { set(container, 0); }
-       void free(void* item) CXX11_OVERRIDE;
+       void free(Extensible* container, void* item) CXX11_OVERRIDE;
 };
 
 class CoreExport StringExtItem : public ExtensionItem
@@ -229,5 +229,5 @@ class CoreExport StringExtItem : public ExtensionItem
        void unserialize(SerializeFormat format, Extensible* container, const std::string& value) CXX11_OVERRIDE;
        void set(Extensible* container, const std::string& value);
        void unset(Extensible* container);
-       void free(void* item) CXX11_OVERRIDE;
+       void free(Extensible* container, void* item) CXX11_OVERRIDE;
 };