Re: [Vala] Sorting a GLib.List<string>
- From: Julian Andres Klode <jak jak-linux org>
- To: Didier 'Ptitjes' <ptitjes free fr>
- Cc: Magnus Therning <magnus therning org>, vala-list <vala-list gnome org>
- Subject: Re: [Vala] Sorting a GLib.List<string>
- Date: Sat, 26 Sep 2009 19:41:31 +0200
On Sat, Sep 26, 2009 at 05:36:54PM +0200, Didier 'Ptitjes' wrote:
Hi Magnus,
Magnus Therning wrote:
What function should I use to sort a list of strings to avoid the
compiler warning I get with strcmp:
...
my_list.sort( strcmp );
...
Test.vala:60: warning: passing argument 2 of ‘g_list_sort’ from
incompatible pointer type
/usr/include/glib-2.0/glib/glist.h:101: note: expected
‘GCompareFunc’ but argument is of type ‘int (*)(const char *,
const char *)’
You have to explicitly cast it to CompareFunc. Indeed, the
GLib.strcmp is just a convenience binding around stdlib's strcmp,
and they appear to not have the exact same signatures. IIRC those
are:
int strcmp (void* a, void* b)
gint GCompareFunc (gconstpointer, gconstpointer)
It might more sense to tell Vala to cast it to GCompareFunc in the
C code, as it is already listed in the VAPI as CompareFunc and casting
a CompareFunc to its own type should really not be needed.
However, I would suggest you to use libgee-0.5 which is expected to
be (finally) released on Monday September 29, 2009 (or master from
git).
Gee.List<G>.sort uses an efficient TimSort algorithm, and for free you get:
Sounds great, this will finally allow APT2 to read a sorted list of
files from a directory.
--
Julian Andres Klode - Debian Developer, Ubuntu Member
See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]