[Vala] Second argument not sent to List sort function
- From: David Ma <dmlh02 gmail com>
- To: vala-list gnome org
- Subject: [Vala] Second argument not sent to List sort function
- Date: Wed, 30 Jun 2010 15:17:27 +0000 (UTC)
The second argument of a CompareFunc List sorting function does not seem to get
sent to the function at all. For integer sorting, 0 is sent; for object sorting,
null is sent.
For example, in the following code, the output from sort_function always says
that item 2 is 0 when in fact it should never be 0. And the list is not sorted
correctly.
public class Main
{
public static void main (string[] args)
{
var list = new List<int>();
list.append(3);
list.append(2);
list.append(1);
list.append(4);
foreach (int i in list)
print ("list item = " + i.to_string() + "\n");
list.sort((CompareFunc) sort_function);
foreach (int i in list)
print ("list item = " + i.to_string() + "\n");
}
public int sort_function(int item1, int item2) {
print ("item 1 is " + item1.to_string ()
+ " and item 2 is " + item2.to_string () + "\n" );
if (item1 < item2)
return -1;
if (item1 == item2)
return 0;
return 1;
}
}
Example output is:
list item = 3
list item = 2
list item = 1
list item = 4
item 1 is 4 and item 2 is 0
item 1 is 2 and item 2 is 0
item 1 is 4 and item 2 is 0
item 1 is 1 and item 2 is 0
list item = 4
list item = 1
list item = 2
list item = 3
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]