summaryrefslogtreecommitdiff
path: root/glib/glibmm/utility.h
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjell.ahlstedt@bredband.net>2015-03-17 10:19:03 +0100
committerKjell Ahlstedt <kjell.ahlstedt@bredband.net>2015-03-17 10:19:03 +0100
commitd1f1eca2d3a5044d6b31c4acf49879fda5306fd8 (patch)
tree90c9f3fc13541d90e629624023c40029d13e3a48 /glib/glibmm/utility.h
parentaa9793638c55e1cb62935af4b6587b2078d96585 (diff)
downloadglibmm-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.h11
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 */