Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
/* GLIB - Library of useful routines for C programming
|
|
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
|
|
*
|
2022-05-18 09:15:38 +01:00
|
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
*
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
* 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
|
2017-01-05 12:47:07 +01:00
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
*
|
|
|
|
* 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
|
2014-01-23 12:58:29 +01:00
|
|
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
|
|
|
* file for a list of people on the GLib Team. See the ChangeLog
|
|
|
|
* files for a list of changes. These files are distributed with
|
2008-03-14 19:30:38 +00:00
|
|
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
*/
|
|
|
|
|
2012-12-27 23:43:14 -05:00
|
|
|
#ifndef __G_ARRAY_H__
|
|
|
|
#define __G_ARRAY_H__
|
|
|
|
|
2011-10-12 00:24:46 -04:00
|
|
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
2008-03-14 19:30:38 +00:00
|
|
|
#error "Only <glib.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
2001-06-26 16:01:21 +00:00
|
|
|
#include <glib/gtypes.h>
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
2011-11-11 17:08:26 +01:00
|
|
|
typedef struct _GBytes GBytes;
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
typedef struct _GArray GArray;
|
|
|
|
typedef struct _GByteArray GByteArray;
|
|
|
|
typedef struct _GPtrArray GPtrArray;
|
|
|
|
|
|
|
|
struct _GArray
|
|
|
|
{
|
|
|
|
gchar *data;
|
|
|
|
guint len;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _GByteArray
|
|
|
|
{
|
|
|
|
guint8 *data;
|
|
|
|
guint len;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _GPtrArray
|
|
|
|
{
|
|
|
|
gpointer *pdata;
|
|
|
|
guint len;
|
|
|
|
};
|
|
|
|
|
2003-02-06 19:57:14 +00:00
|
|
|
/* Resizable arrays. remove fills any cleared spot and shortens the
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
* array, while preserving the order. remove_fast will distort the
|
2003-02-06 19:57:14 +00:00
|
|
|
* order by moving the last element to the position of the removed.
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
*/
|
|
|
|
|
2001-01-02 20:52:05 +00:00
|
|
|
#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1)
|
|
|
|
#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1)
|
|
|
|
#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1)
|
2007-12-10 22:27:40 +00:00
|
|
|
#define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)])
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_new (gboolean zero_terminated,
|
2002-11-08 18:47:56 +00:00
|
|
|
gboolean clear_,
|
2000-11-20 23:59:32 +00:00
|
|
|
guint element_size);
|
2022-12-14 00:58:13 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GArray* g_array_new_take (gpointer data,
|
|
|
|
gsize len,
|
|
|
|
gboolean clear,
|
|
|
|
gsize element_size);
|
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GArray* g_array_new_take_zero_terminated (gpointer data,
|
|
|
|
gboolean clear,
|
|
|
|
gsize element_size);
|
2019-07-30 19:22:05 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_64
|
|
|
|
gpointer g_array_steal (GArray *array,
|
|
|
|
gsize *len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_sized_new (gboolean zero_terminated,
|
2002-11-08 18:47:56 +00:00
|
|
|
gboolean clear_,
|
2000-11-20 23:59:32 +00:00
|
|
|
guint element_size,
|
|
|
|
guint reserved_size);
|
2019-05-28 09:46:20 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_62
|
|
|
|
GArray* g_array_copy (GArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gchar* g_array_free (GArray *array,
|
|
|
|
gboolean free_segment);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
GArray *g_array_ref (GArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
void g_array_unref (GArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
guint g_array_get_element_size (GArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_append_vals (GArray *array,
|
|
|
|
gconstpointer data,
|
|
|
|
guint len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_prepend_vals (GArray *array,
|
|
|
|
gconstpointer data,
|
|
|
|
guint len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_insert_vals (GArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_,
|
2000-11-20 23:59:32 +00:00
|
|
|
gconstpointer data,
|
|
|
|
guint len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_set_size (GArray *array,
|
|
|
|
guint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_remove_index (GArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GArray* g_array_remove_index_fast (GArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2003-07-26 08:03:16 +00:00
|
|
|
GArray* g_array_remove_range (GArray *array,
|
|
|
|
guint index_,
|
|
|
|
guint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_array_sort (GArray *array,
|
|
|
|
GCompareFunc compare_func);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_array_sort_with_data (GArray *array,
|
changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org>
* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
to contain an optional init function and a hint at whether the
boxed structure uses ref counting internally.
added g_value_set_boxed_take_ownership().
made G_TYPE_BOXED an abstract value type.
* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
types.
* glib-genmarshal.c: argument type changes, preparation for third-party
arg specification.
* gobject.[hc]: cleaned up get/set property code.
added g_strdup_value_contents() to improve warnings.
* gparam.[hc]: added g_param_value_convert(), taking over responsibility
of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
validation alterations may be valid a part of the property setting
process.
* gparamspecs.[hc]: made value comparisons stable (for sort applications).
added GParamSpecValueArray, a param spec for value arrays and
GParamSpecClosure. nuked the value exchange functions and
GParamSpecCCallback.
* gtype.[hc]: catch unintialized usages of the type system with
g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
to flag types that introduce a value table, but can't be used for
g_value_init(). cleaned up reserved type ids.
* gvalue.[hc]: code cleanups and saner checking.
nuked the value exchange API. implemented value transformations, we
can't really "convert" values, rather transforms are an anylogy to
C casts, real conversions need a param spec for validation, which is
why g_param_value_convert() does real conversions now.
* gvaluearray.[hc]: new files that implement a GValueArray, a struct
that can hold inhomogeneous arrays of value (to that extend that it
also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
this is exposed to the type system as a boxed type.
* gvaluetransform.c: new file implementing most of the former value
exchange functions as single-sided transformations.
* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
g_value_set_string_take_ownership().
* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
* *.[hc]: many fixes and cleanups.
* many warning improvements.
Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
into G_VALUE_LCOPY(), this needs proper documenting.
* gparam.c: fixed G_PARAM_USER_MASK.
* gtype.c (type_data_make_W):
(type_data_last_unref_Wm): fixed invalid memory freeing.
* gobject.c (g_object_last_unref): destroy signal handlers associated
with object, right before finalization.
* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
that don't actually support details.
* gobject.[hc]: got rid of property trailers. nuked GObject
properties "data" and the "signal" variants.
(g_object_connect): new convenience function to do multiple
signal connections at once.
(g_object_disconnect): likewise, for disconnections.
* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar 7 09:32:06 2001 Tim Janik <timj@gtk.org>
* glib-object.h: add gvaluearray.h.
* gstring.[hc]: fixup naming of g_string_sprint*.
* gtypes.h: fixed GCompareDataFunc naming.
Wed Mar 7 09:33:27 2001 Tim Janik <timj@gtk.org>
* gobject/Makefile.am: shuffled rules to avoid excessive
rebuilds.
* gobject/gobject-sections.txt: updates.
* gobject/tmpl/*: bunch of updates, added another patch
from Eric Lemings <eric.b.lemings@lmco.com>.
2001-03-07 14:46:45 +00:00
|
|
|
GCompareDataFunc compare_func,
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer user_data);
|
2019-05-16 14:34:58 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_62
|
|
|
|
gboolean g_array_binary_search (GArray *array,
|
|
|
|
gconstpointer target,
|
|
|
|
GCompareFunc compare_func,
|
|
|
|
guint *out_match_index);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2012-01-04 07:41:47 +00:00
|
|
|
void g_array_set_clear_func (GArray *array,
|
|
|
|
GDestroyNotify clear_func);
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
|
|
|
|
/* Resizable pointer array. This interface is much less complicated
|
2003-02-06 19:57:14 +00:00
|
|
|
* than the above. Add appends a pointer. Remove fills any cleared
|
|
|
|
* spot and shortens the array. remove_fast will again distort order.
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
*/
|
2002-11-08 18:47:56 +00:00
|
|
|
#define g_ptr_array_index(array,index_) ((array)->pdata)[index_]
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GPtrArray* g_ptr_array_new (void);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func);
|
2022-12-07 13:35:04 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GPtrArray* g_ptr_array_new_take (gpointer *data,
|
|
|
|
gsize len,
|
|
|
|
GDestroyNotify element_free_func);
|
2022-12-13 18:33:52 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GPtrArray* g_ptr_array_new_from_array (gpointer *data,
|
|
|
|
gsize len,
|
|
|
|
GCopyFunc copy_func,
|
|
|
|
gpointer copy_func_user_data,
|
|
|
|
GDestroyNotify element_free_func);
|
2019-07-30 19:22:05 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_64
|
|
|
|
gpointer* g_ptr_array_steal (GPtrArray *array,
|
|
|
|
gsize *len);
|
2019-06-19 12:36:06 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_62
|
|
|
|
GPtrArray *g_ptr_array_copy (GPtrArray *array,
|
|
|
|
GCopyFunc func,
|
|
|
|
gpointer user_data);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GPtrArray* g_ptr_array_sized_new (guint reserved_size);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2011-07-14 10:51:06 +02:00
|
|
|
GPtrArray* g_ptr_array_new_full (guint reserved_size,
|
|
|
|
GDestroyNotify element_free_func);
|
array: add support for %NULL termination in GPtrArray
GArray supports a "zero_terminated" flag, but GPtrArray doesn't.
This is odd, because especially for a pointer array it makes sense
to have a %NULL sentinel. This would be for example useful to track
or construct a strv array with a GPtrArray.
As workaround for this missing feature you could use a GArray instead
(ugly) or to explicitly add the %NULL element. However the latter increases
the "len" of the array, which can be problematic if you want to still use
the GPtrArray for other purposes.
Add API for marking a GPtrArray as %NULL terminated. In that case, the
API will ensure that there is always a valid %NULL sentinel after the
array. Note that the API does not enforce that a %NULL terminated API
actually has any data allocated. That means, even with a %NULL terminated
array, pdata can still be %NULL (only if len is zero).
Add g_ptr_array_new_null_terminated() constructor. The null-terminated flag
cannot be cleared. Once the GPtrArray is flagged to be %NULL terminated, it
sticks. The purpose is that once a user checks whether a GPtrArray instance
is safe to be treated as a %NULL terminated array, the decision does
not need to be re-evaluated.
Also add a g_ptr_array_is_null_terminated(). That is useful because it
allows you to check whether a GPtrArray created by somebody else is safe
to use as a %NULL terminated array. Since there is no API to make an
array not %NULL terminated anymore, this is not error prone.
The new flag is tracked as a guint8 in GRealPtrArray. On common 64 bit
architectures this does not increase the size of the struct as it fits
in an existing hole. Note that this is not a bitfield because it's
probably more efficient to access the entire guint8. However, there is
still a 3 bytes hole (on common 32 and 64 architectures), so if we need
to add more flags in the future, we still have space for 24 bits,
despite the new flag not being a bitfield.
The biggest downside of the patch is the runtime overhead that most
operations now need to check whether %NULL termination is requested.
Includes some tweaks and additional tests by Philip Withnall.
https://gitlab.gnome.org/GNOME/glib/-/issues/353
2020-05-06 19:35:37 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_74
|
|
|
|
GPtrArray* g_ptr_array_new_null_terminated (guint reserved_size,
|
|
|
|
GDestroyNotify element_free_func,
|
|
|
|
gboolean null_terminated);
|
2022-12-13 19:27:34 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GPtrArray* g_ptr_array_new_take_null_terminated (gpointer *data,
|
|
|
|
GDestroyNotify element_free_func);
|
2022-12-13 20:58:47 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
GPtrArray* g_ptr_array_new_from_null_terminated_array (gpointer *data,
|
|
|
|
GCopyFunc copy_func,
|
|
|
|
gpointer copy_func_user_data,
|
|
|
|
GDestroyNotify element_free_func);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer* g_ptr_array_free (GPtrArray *array,
|
|
|
|
gboolean free_seg);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
GPtrArray* g_ptr_array_ref (GPtrArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
void g_ptr_array_unref (GPtrArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
void g_ptr_array_set_free_func (GPtrArray *array,
|
|
|
|
GDestroyNotify element_free_func);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_ptr_array_set_size (GPtrArray *array,
|
|
|
|
gint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer g_ptr_array_remove_index (GPtrArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2018-04-19 14:54:41 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_58
|
|
|
|
gpointer g_ptr_array_steal_index (GPtrArray *array,
|
|
|
|
guint index_);
|
|
|
|
GLIB_AVAILABLE_IN_2_58
|
|
|
|
gpointer g_ptr_array_steal_index_fast (GPtrArray *array,
|
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gboolean g_ptr_array_remove (GPtrArray *array,
|
|
|
|
gpointer data);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
gboolean g_ptr_array_remove_fast (GPtrArray *array,
|
|
|
|
gpointer data);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2013-11-23 21:10:06 -05:00
|
|
|
GPtrArray *g_ptr_array_remove_range (GPtrArray *array,
|
2003-07-26 08:03:16 +00:00
|
|
|
guint index_,
|
|
|
|
guint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_ptr_array_add (GPtrArray *array,
|
|
|
|
gpointer data);
|
2019-06-19 12:40:27 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_62
|
|
|
|
void g_ptr_array_extend (GPtrArray *array_to_extend,
|
|
|
|
GPtrArray *array,
|
|
|
|
GCopyFunc func,
|
|
|
|
gpointer user_data);
|
2019-06-19 12:42:08 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_62
|
|
|
|
void g_ptr_array_extend_and_steal (GPtrArray *array_to_extend,
|
|
|
|
GPtrArray *array);
|
2013-11-27 14:34:20 +09:00
|
|
|
GLIB_AVAILABLE_IN_2_40
|
2014-02-01 20:45:25 -05:00
|
|
|
void g_ptr_array_insert (GPtrArray *array,
|
2013-11-27 14:34:20 +09:00
|
|
|
gint index_,
|
|
|
|
gpointer data);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_ptr_array_sort (GPtrArray *array,
|
|
|
|
GCompareFunc compare_func);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_ptr_array_sort_with_data (GPtrArray *array,
|
changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org>
* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
to contain an optional init function and a hint at whether the
boxed structure uses ref counting internally.
added g_value_set_boxed_take_ownership().
made G_TYPE_BOXED an abstract value type.
* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
types.
* glib-genmarshal.c: argument type changes, preparation for third-party
arg specification.
* gobject.[hc]: cleaned up get/set property code.
added g_strdup_value_contents() to improve warnings.
* gparam.[hc]: added g_param_value_convert(), taking over responsibility
of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
validation alterations may be valid a part of the property setting
process.
* gparamspecs.[hc]: made value comparisons stable (for sort applications).
added GParamSpecValueArray, a param spec for value arrays and
GParamSpecClosure. nuked the value exchange functions and
GParamSpecCCallback.
* gtype.[hc]: catch unintialized usages of the type system with
g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
to flag types that introduce a value table, but can't be used for
g_value_init(). cleaned up reserved type ids.
* gvalue.[hc]: code cleanups and saner checking.
nuked the value exchange API. implemented value transformations, we
can't really "convert" values, rather transforms are an anylogy to
C casts, real conversions need a param spec for validation, which is
why g_param_value_convert() does real conversions now.
* gvaluearray.[hc]: new files that implement a GValueArray, a struct
that can hold inhomogeneous arrays of value (to that extend that it
also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
this is exposed to the type system as a boxed type.
* gvaluetransform.c: new file implementing most of the former value
exchange functions as single-sided transformations.
* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
g_value_set_string_take_ownership().
* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
* *.[hc]: many fixes and cleanups.
* many warning improvements.
Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
into G_VALUE_LCOPY(), this needs proper documenting.
* gparam.c: fixed G_PARAM_USER_MASK.
* gtype.c (type_data_make_W):
(type_data_last_unref_Wm): fixed invalid memory freeing.
* gobject.c (g_object_last_unref): destroy signal handlers associated
with object, right before finalization.
* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
that don't actually support details.
* gobject.[hc]: got rid of property trailers. nuked GObject
properties "data" and the "signal" variants.
(g_object_connect): new convenience function to do multiple
signal connections at once.
(g_object_disconnect): likewise, for disconnections.
* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar 7 09:32:06 2001 Tim Janik <timj@gtk.org>
* glib-object.h: add gvaluearray.h.
* gstring.[hc]: fixup naming of g_string_sprint*.
* gtypes.h: fixed GCompareDataFunc naming.
Wed Mar 7 09:33:27 2001 Tim Janik <timj@gtk.org>
* gobject/Makefile.am: shuffled rules to avoid excessive
rebuilds.
* gobject/gobject-sections.txt: updates.
* gobject/tmpl/*: bunch of updates, added another patch
from Eric Lemings <eric.b.lemings@lmco.com>.
2001-03-07 14:46:45 +00:00
|
|
|
GCompareDataFunc compare_func,
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer user_data);
|
2022-12-20 00:14:18 +01:00
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
void g_ptr_array_sort_values (GPtrArray *array,
|
|
|
|
GCompareFunc compare_func);
|
|
|
|
GLIB_AVAILABLE_IN_2_76
|
|
|
|
void g_ptr_array_sort_values_with_data (GPtrArray *array,
|
|
|
|
GCompareDataFunc compare_func,
|
|
|
|
gpointer user_data);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2003-12-26 01:04:12 +00:00
|
|
|
void g_ptr_array_foreach (GPtrArray *array,
|
|
|
|
GFunc func,
|
|
|
|
gpointer user_data);
|
2013-04-15 15:04:34 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_54
|
|
|
|
gboolean g_ptr_array_find (GPtrArray *haystack,
|
|
|
|
gconstpointer needle,
|
|
|
|
guint *index_);
|
|
|
|
GLIB_AVAILABLE_IN_2_54
|
|
|
|
gboolean g_ptr_array_find_with_equal_func (GPtrArray *haystack,
|
|
|
|
gconstpointer needle,
|
|
|
|
GEqualFunc equal_func,
|
|
|
|
guint *index_);
|
2000-11-20 23:59:32 +00:00
|
|
|
|
array: add support for %NULL termination in GPtrArray
GArray supports a "zero_terminated" flag, but GPtrArray doesn't.
This is odd, because especially for a pointer array it makes sense
to have a %NULL sentinel. This would be for example useful to track
or construct a strv array with a GPtrArray.
As workaround for this missing feature you could use a GArray instead
(ugly) or to explicitly add the %NULL element. However the latter increases
the "len" of the array, which can be problematic if you want to still use
the GPtrArray for other purposes.
Add API for marking a GPtrArray as %NULL terminated. In that case, the
API will ensure that there is always a valid %NULL sentinel after the
array. Note that the API does not enforce that a %NULL terminated API
actually has any data allocated. That means, even with a %NULL terminated
array, pdata can still be %NULL (only if len is zero).
Add g_ptr_array_new_null_terminated() constructor. The null-terminated flag
cannot be cleared. Once the GPtrArray is flagged to be %NULL terminated, it
sticks. The purpose is that once a user checks whether a GPtrArray instance
is safe to be treated as a %NULL terminated array, the decision does
not need to be re-evaluated.
Also add a g_ptr_array_is_null_terminated(). That is useful because it
allows you to check whether a GPtrArray created by somebody else is safe
to use as a %NULL terminated array. Since there is no API to make an
array not %NULL terminated anymore, this is not error prone.
The new flag is tracked as a guint8 in GRealPtrArray. On common 64 bit
architectures this does not increase the size of the struct as it fits
in an existing hole. Note that this is not a bitfield because it's
probably more efficient to access the entire guint8. However, there is
still a 3 bytes hole (on common 32 and 64 architectures), so if we need
to add more flags in the future, we still have space for 24 bits,
despite the new flag not being a bitfield.
The biggest downside of the patch is the runtime overhead that most
operations now need to check whether %NULL termination is requested.
Includes some tweaks and additional tests by Philip Withnall.
https://gitlab.gnome.org/GNOME/glib/-/issues/353
2020-05-06 19:35:37 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_74
|
|
|
|
gboolean g_ptr_array_is_null_terminated (GPtrArray *array);
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
|
|
|
|
/* Byte arrays, an array of guint8. Implemented as a GArray,
|
|
|
|
* but type-safe.
|
|
|
|
*/
|
|
|
|
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_new (void);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2011-11-11 17:08:26 +01:00
|
|
|
GByteArray* g_byte_array_new_take (guint8 *data,
|
|
|
|
gsize len);
|
2019-07-30 19:22:05 +02:00
|
|
|
GLIB_AVAILABLE_IN_2_64
|
|
|
|
guint8* g_byte_array_steal (GByteArray *array,
|
|
|
|
gsize *len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_sized_new (guint reserved_size);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
guint8* g_byte_array_free (GByteArray *array,
|
|
|
|
gboolean free_segment);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2011-11-11 17:08:26 +01:00
|
|
|
GBytes* g_byte_array_free_to_bytes (GByteArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
GByteArray *g_byte_array_ref (GByteArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2009-04-29 11:15:20 -04:00
|
|
|
void g_byte_array_unref (GByteArray *array);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_append (GByteArray *array,
|
|
|
|
const guint8 *data,
|
|
|
|
guint len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_prepend (GByteArray *array,
|
|
|
|
const guint8 *data,
|
|
|
|
guint len);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_set_size (GByteArray *array,
|
|
|
|
guint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_remove_index (GByteArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
|
2002-11-08 18:47:56 +00:00
|
|
|
guint index_);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2003-07-26 08:03:16 +00:00
|
|
|
GByteArray* g_byte_array_remove_range (GByteArray *array,
|
|
|
|
guint index_,
|
|
|
|
guint length);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_byte_array_sort (GByteArray *array,
|
|
|
|
GCompareFunc compare_func);
|
2012-12-06 14:04:59 -05:00
|
|
|
GLIB_AVAILABLE_IN_ALL
|
2000-11-20 23:59:32 +00:00
|
|
|
void g_byte_array_sort_with_data (GByteArray *array,
|
changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org>
* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
to contain an optional init function and a hint at whether the
boxed structure uses ref counting internally.
added g_value_set_boxed_take_ownership().
made G_TYPE_BOXED an abstract value type.
* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
types.
* glib-genmarshal.c: argument type changes, preparation for third-party
arg specification.
* gobject.[hc]: cleaned up get/set property code.
added g_strdup_value_contents() to improve warnings.
* gparam.[hc]: added g_param_value_convert(), taking over responsibility
of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
validation alterations may be valid a part of the property setting
process.
* gparamspecs.[hc]: made value comparisons stable (for sort applications).
added GParamSpecValueArray, a param spec for value arrays and
GParamSpecClosure. nuked the value exchange functions and
GParamSpecCCallback.
* gtype.[hc]: catch unintialized usages of the type system with
g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
to flag types that introduce a value table, but can't be used for
g_value_init(). cleaned up reserved type ids.
* gvalue.[hc]: code cleanups and saner checking.
nuked the value exchange API. implemented value transformations, we
can't really "convert" values, rather transforms are an anylogy to
C casts, real conversions need a param spec for validation, which is
why g_param_value_convert() does real conversions now.
* gvaluearray.[hc]: new files that implement a GValueArray, a struct
that can hold inhomogeneous arrays of value (to that extend that it
also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
this is exposed to the type system as a boxed type.
* gvaluetransform.c: new file implementing most of the former value
exchange functions as single-sided transformations.
* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
g_value_set_string_take_ownership().
* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
* *.[hc]: many fixes and cleanups.
* many warning improvements.
Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
into G_VALUE_LCOPY(), this needs proper documenting.
* gparam.c: fixed G_PARAM_USER_MASK.
* gtype.c (type_data_make_W):
(type_data_last_unref_Wm): fixed invalid memory freeing.
* gobject.c (g_object_last_unref): destroy signal handlers associated
with object, right before finalization.
* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
that don't actually support details.
* gobject.[hc]: got rid of property trailers. nuked GObject
properties "data" and the "signal" variants.
(g_object_connect): new convenience function to do multiple
signal connections at once.
(g_object_disconnect): likewise, for disconnections.
* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar 7 09:32:06 2001 Tim Janik <timj@gtk.org>
* glib-object.h: add gvaluearray.h.
* gstring.[hc]: fixup naming of g_string_sprint*.
* gtypes.h: fixed GCompareDataFunc naming.
Wed Mar 7 09:33:27 2001 Tim Janik <timj@gtk.org>
* gobject/Makefile.am: shuffled rules to avoid excessive
rebuilds.
* gobject/gobject-sections.txt: updates.
* gobject/tmpl/*: bunch of updates, added another patch
from Eric Lemings <eric.b.lemings@lmco.com>.
2001-03-07 14:46:45 +00:00
|
|
|
GCompareDataFunc compare_func,
|
2000-11-20 23:59:32 +00:00
|
|
|
gpointer user_data);
|
|
|
|
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00
|
|
|
G_END_DECLS
|
|
|
|
|
|
|
|
#endif /* __G_ARRAY_H__ */
|