Commit Graph

21 Commits

Author SHA1 Message Date
Chun-wei Fan
b08b301223 glib/gqsort.c: Fix C99ism/GCCism
-There were a number of variables that were declared in the middle of
 the block, so move these declarations to the start of the block
-There was a use of mempcpy, but it is a GCC extension, so use memcpy since
 we didn't care about the return value of the call to mempcpy.

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-20 22:29:50 -04:00
Matthias Clasen
6dfb50adf7 Don't return from a void function 2012-03-19 13:28:14 -04:00
Matthias Clasen
cb45176110 Fix a C99ism 2012-03-19 13:26:19 -04:00
Matthias Clasen
bd3063c742 Silence a compiler warning 2012-03-19 13:22:04 -04:00
Alexander Larsson
839957f275 Make g_qsort_with_data stable, based on glibc msort
We need a stable sort, and we might as well always use it rather
than have multiple sort versions. This picks up the glibc
merge sort implementation which it uses by default for qsort,
except we don't fall back to non-stable quicksort in some cases
like glibc

https://bugzilla.gnome.org/show_bug.cgi?id=672095
2012-03-16 16:04:36 +01:00
Dan Winship
e56498ee0b Fix usage of _GNU_SOURCE
_GNU_SOURCE must be defined before including any other (system)
header, so defining it in glib-unix.h (and hoping no one has included
anything else before that) is wrong. And the "#define _USE_GNU"
workaround for this problem in gnetworkingprivate.h is even wronger
(and still prone to failure anyway due to single-include guards).

Fix this by defining _GNU_SOURCE in config.h when building against
glibc. In theory this is bad because new releases of glibc may include
symbols that conflict with glib symbols, which could then cause
compile failures. However, most people only see new releases of glibc
when they upgrade their distro, at which point they also generally get
new releases of gcc, which have new warnings/errors to clean up
anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=649201
2011-05-03 07:07:41 -04:00
Colin Walters
98365dff73 gqsort: Quiet a compiler warning for qsort_r 2011-03-31 17:07:07 -04:00
Matthias Clasen
4cda703d8e Use glibc qsort_r() for g_qsort_with_data()
No point in using an outdated copy that claims to
'work best on a Sun 4/260' when we can just wrap qsort_r...
2011-02-16 01:28:27 -05:00
Matthias Clasen
04077ff5c5 More include cleanups 2010-09-03 23:03:14 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
2005-03-13  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in galias.h:

	* glib/glib.symbols: Group symbols by header and source file.
	* glib/makegalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegalias.pl -def
	* glib/Makefile.am (galiasdef.c): Add a rule to generate this
	file.
	* glib/*.c: Include galias.h after the other GLib headers,
	include galiasdef.c at the bottom.
2005-03-14 04:26:57 +00:00
Matthias Clasen
4b95bf234b Don't include alloca.h. It is not needed, and does not exist on win32.
2005-01-18  Matthias Clasen  <mclasen@redhat.com>

	* glib/gqsort.c: Don't include alloca.h. It is not needed,
	and does not exist on win32.  (#164468, Kazuki IWAMOTO)
2005-01-18 13:41:57 +00:00
Matthias Clasen
158f95a4bd Sync to glibc. (#133994, Morten Welinder, patch by Kjartan Maraas)
2005-01-13  Matthias Clasen  <mclasen@redhat.com>

	* glib/gqsort.c: Sync to glibc.  (#133994, Morten Welinder,
	patch by Kjartan Maraas)
2005-01-13 18:04:18 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Matthias Clasen
cf9779628e Use gchar, gint, gsize instead of char, int, size_t in the interface for
2003-07-29  Matthias Clasen  <maclas@gmx.de>

	* glib/gqsort.[hc] (g_qsort_with_data):
	* glib/gconvert.[hc] (g_filename_to_uri, g_filename_from_uri):
	* glib/gfileutils.[hc] (g_mkstemp, g_file_open_tmp): Use gchar, gint, gsize instead of char, int, size_t
	in the interface for consistency.  (#118567)
2003-07-29 18:59:23 +00:00
Owen Taylor
bbbd329ff5 Patch from Sven Neumann to make the include order consistent. (#71704)
Tue Dec  3 20:22:27 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/*.c: Patch from Sven Neumann to make the
        include order consistent. (#71704)
2002-12-04 01:27:44 +00:00
Owen Taylor
053a1ce434 Fixes for #79347, Ron Arts.
Tue May  7 11:24:22 2002  Owen Taylor  <otaylor@redhat.com>

        Fixes for #79347, Ron Arts.

        * glib/gqsort.c (g_qsort_with_data): Handle 0 elements,
        don't g_return_if_fail().

        * tests/qsort-test.c (main): Add a 0 element test.

        * glib/garray.c (g_[ptr_]array_sort_with[_data]):
        Remove invalid assertions that array->pdata != NULL ..
        it's NULL for 0 elements which is a valid case.
2002-05-07 15:32:08 +00:00
Owen Taylor
a9b48f3327 Fixes for compilation on Solaris (#59026, Frank Belew)
Tue Sep 18 18:23:02 2001  Owen Taylor  <otaylor@redhat.com>

        Fixes for compilation on Solaris (#59026, Frank Belew)

        * glib/gqsort.c (g_qsort_with_data): Use g_alloca().

        * glib/giochannel.c (g_io_channel_read_to_end): Fix use
        of ternary on left-hand-side.

        * configure.in: Handle the ac_cv_working_alloca_h variable
        set by autoconf-2.5x.

Tue Sep 11 18:50:44 2001  Owen Taylor  <otaylor@redhat.com>

        * m4macros/glib-gettext.m4 acinclude.m4: Remove commented
        out sections for clarity.
2001-09-18 22:28:32 +00:00
Havoc Pennington
4eab875811 docs
2001-04-16  Havoc Pennington  <hp@redhat.com>

        * gqsort.c: docs

        * gfileutils.c: docs

        * gwin32.c: docs fixes

        * gconvert.c: docs

        * guniprop.c: docs

        * gutf8.c: docs
2001-04-16 20:05:25 +00:00
Tim Janik
37e4b8c87e 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
Jonathan Blandford
2645aaf59c Patch from David Benson <daveb@idealab.com> to add user_data support to
Mon Nov 20 18:55:17 2000  Jonathan Blandford  <jrb@redhat.com>

	* gtree.[hc]: Patch from David Benson <daveb@idealab.com> to add
	user_data support to gtree functions.

Mon Nov 13 18:35:52 2000  Jonathan Blandford  <jrb@redhat.com>

	* gtypes.h (GCompareFuncData): new func type to let you use user
	data when comparing nodes.

	* gslist.c (g_list_sort_with_data): new function to sort with
	user_data.

	* glist.c (g_list_sort_with_data): new function to sort with
	user_data.

	* garray.[ch]: Added convenience functions to sort arrays.
2000-11-20 23:59:32 +00:00