*/
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
*/
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> >
del(old);
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
Del del;
del(static_cast<T*>(item));
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
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;
};