diff options
author | Kjell Ahlstedt <kjell.ahlstedt@bredband.net> | 2015-03-17 10:19:03 +0100 |
---|---|---|
committer | Kjell Ahlstedt <kjell.ahlstedt@bredband.net> | 2015-03-17 10:19:03 +0100 |
commit | d1f1eca2d3a5044d6b31c4acf49879fda5306fd8 (patch) | |
tree | 90c9f3fc13541d90e629624023c40029d13e3a48 /glib/glibmm/utility.h | |
parent | aa9793638c55e1cb62935af4b6587b2078d96585 (diff) | |
download | glibmm-d1f1eca2d3a5044d6b31c4acf49879fda5306fd8.tar.gz |
gmmproc: _WRAP_VFUNC: Add the keep_return parameter
* glib/glibmm/utility.h: Add template function destroy_notify_delete().
* tools/pm/WrapParser.pm:
* tools/pm/Output.pm:
* tools/m4/vfunc.m4: Add optional parameter keep_return to _WRAP_VFUNC().
Bug #705124.
Diffstat (limited to 'glib/glibmm/utility.h')
-rw-r--r-- | glib/glibmm/utility.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/glib/glibmm/utility.h b/glib/glibmm/utility.h index 6e5319b8..79fecb6b 100644 --- a/glib/glibmm/utility.h +++ b/glib/glibmm/utility.h @@ -1,4 +1,3 @@ -// -*- c++ -*- #ifndef _GLIBMM_UTILITY_H #define _GLIBMM_UTILITY_H @@ -113,6 +112,16 @@ std::string convert_return_gchar_ptr_to_stdstring(char* str) // Append type_name to dest, while replacing special characters with '+'. void append_canonical_typename(std::string& dest, const char* type_name); +// Delete data referred to by a void*. +// Instantiations can be used as destroy callbacks in glib functions +// that take a GDestroyNotify parameter, such as g_object_set_qdata_full() +// and g_option_group_set_translate_func(). +template <typename T> +void destroy_notify_delete(void* data) +{ + delete static_cast<T*>(data); +} + } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ |