From 27804390ee936ae79b973f3128db1d88b137710c Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Tue, 4 Feb 2020 18:13:47 +0100 Subject: lib: Add smart pointer for g_free()able things --- src/glib-glue.hh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/glib-glue.hh b/src/glib-glue.hh index cbf7559e..379e36ce 100644 --- a/src/glib-glue.hh +++ b/src/glib-glue.hh @@ -26,6 +26,24 @@ namespace vte::glib { +template +using free_ptr = std::unique_ptr; + +template +free_ptr +take_free_ptr(T* ptr) +{ + return {ptr, &g_free}; +} + +using string_ptr = free_ptr; + +inline string_ptr +take_string(char* str) +{ + return take_free_ptr(str); +} + class Error { public: Error() = default; -- cgit v1.2.1