On Fri, 2016-09-16 at 23:19 +0200, Bastien Nocera wrote:
> On Fri, 2016-09-16 at 19:40 +0000, Pandruvada, Srinivas wrote:
> >
> > On Fri, 2016-09-16 at 12:31 -0700, Srinivas Pandruvada wrote:
> > On Sat, 2016-09-17 at 00:05 +0530, Ritesh Raj Sarraf wrote:
> > >
> > >
> > > On Fri, 2016-09-16 at 23:56 +0530, Ritesh Raj Sarraf wrote:
> > > >
> > > >
> > > >
> > > > I'll also confirm for 4.7 soon.
> > >
> > > Verified on 4.7 too and it is all good.
> > Thanks.
> > I will send a pull request with this patch.
> >
> > Hi Bastien,
> >
> > My original pull request for issue #99 already had this change.
> > Somehow
> > when merged to main, this change was removed.
> > May be just revert and pull again.
> If you can explain the change, I'd be all for it, because I don't
> understand it.
Please check the attached patch with comments.
Thanks,
Srinivas
From 6406d953fb65a838fe760d86a0b664128a343a03 Mon Sep 17 00:00:00 2001
From: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
Date: Fri, 16 Sep 2016 10:31:00 -0700
Subject: [PATCH] Fix sorting of channels
As per the documentation of g_ptr_array_sort
"Note that the comparison function for g_ptr_array_sort() doesn't take the
pointers from the array as arguments, it takes pointers to the pointers in
the array"
So the arguments to the function
compare_channel_index (gconstpointer a, gconstpointer b)
needs to be dereferenced to get pointer to iio_channel_info.
---
src/iio-buffer-utils.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/iio-buffer-utils.c b/src/iio-buffer-utils.c
index 440a8b7..0b24bac 100644
--- a/src/iio-buffer-utils.c
+++ b/src/iio-buffer-utils.c
@@ -200,8 +200,8 @@ channel_info_free (iio_channel_info *ci)
static int
compare_channel_index (gconstpointer a, gconstpointer b)
{
- const iio_channel_info *info_1 = a;
- const iio_channel_info *info_2 = b;
+ const iio_channel_info *info_1 = *(iio_channel_info **) a;
+ const iio_channel_info *info_2 = *(iio_channel_info **) b;
return (int) (info_1->index - info_2->index);
}
--
2.7.4