diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2016-11-15 13:34:44 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2016-11-15 13:34:44 +0000 |
commit | 0f3306a56ebffc3140f662a0b87ab06b4e0363af (patch) | |
tree | c0c2f827118a5cf36f67ce1755cb8936f829a3ec /glib/grefstring.h | |
parent | 43ed42e4d52c14816b10ba83cedfb37e6ccc839a (diff) | |
download | glib-wip/ebassi/rc.tar.gz |
Add reference counted stringswip/ebassi/rc
Instead of copying strings around, we can box them using the g_ref_* API
and add reference counting to the char array.
Reference counted strings can be used with any string utility function.
Diffstat (limited to 'glib/grefstring.h')
-rw-r--r-- | glib/grefstring.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/glib/grefstring.h b/glib/grefstring.h new file mode 100644 index 000000000..cc766b03d --- /dev/null +++ b/glib/grefstring.h @@ -0,0 +1,39 @@ +/* GLib - Library of useful routines for C programming + * Copyright 2016 Emmanuele Bassi + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __G_REF_STRING_H__ +#define __G_REF_STRING_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only <glib.h> can be included directly." +#endif + +#include <glib/gutils.h> + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_2_52 +char * g_ref_string_new (const char *str); + +GLIB_AVAILABLE_IN_2_52 +char * g_ref_string_ref (char *str); +GLIB_AVAILABLE_IN_2_52 +void g_ref_string_unref (char *str); + +G_END_DECLS + +#endif /* __G_REF_STRING_H__ */ |