1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
From 19a560f9491c4964e7093e22cb3876fc53a442e6 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Wed, 23 Sep 2015 23:16:04 +0200
Subject: [PATCH] Revert "list store: Fix a parameter check"
This reverts commit d28639507db2029b8f184a5d93e9d8c28acc1955.
Bogus commit changing the behavior of g_sequence_search in violation
of the documentation. Breaks GStreamer test suite.
---
glib/gsequence.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/glib/gsequence.c b/glib/gsequence.c
index 75c1f76..76e24e7 100644
--- a/glib/gsequence.c
+++ b/glib/gsequence.c
@@ -139,8 +139,7 @@ static GSequenceNode *node_find_closest (GSequenceNode *haystack,
GSequenceNode *needle,
GSequenceNode *end,
GSequenceIterCompareFunc cmp,
- gpointer user_data,
- gboolean return_match);
+ gpointer user_data);
static gint node_get_length (GSequenceNode *node);
static void node_free (GSequenceNode *node,
GSequence *seq);
@@ -1080,7 +1079,7 @@ g_sequence_search_iter (GSequence *seq,
dummy = g_sequence_append (tmp_seq, data);
node = node_find_closest (seq->end_node, dummy,
- seq->end_node, iter_cmp, cmp_data, TRUE);
+ seq->end_node, iter_cmp, cmp_data);
g_sequence_free (tmp_seq);
@@ -1734,8 +1733,7 @@ node_find_closest (GSequenceNode *haystack,
GSequenceNode *needle,
GSequenceNode *end,
GSequenceIterCompareFunc iter_cmp,
- gpointer cmp_data,
- gboolean return_match)
+ gpointer cmp_data)
{
GSequenceNode *best;
gint c;
@@ -1765,12 +1763,10 @@ node_find_closest (GSequenceNode *haystack,
}
while (haystack != NULL);
- /* If the best node is smaller than the data, then move one step
- * to the right to make sure the best one is strictly bigger than the data.
- * We do return the last exact match or the node after it, depending on
- * the return_match argument.
+ /* If the best node is smaller or equal to the data, then move one step
+ * to the right to make sure the best one is strictly bigger than the data
*/
- if (best != end && (c < 0 || (c == 0 && !return_match)))
+ if (best != end && c <= 0)
best = node_get_next (best);
return best;
@@ -1992,7 +1988,7 @@ node_insert_sorted (GSequenceNode *node,
{
GSequenceNode *closest;
- closest = node_find_closest (node, new, end, iter_cmp, cmp_data, FALSE);
+ closest = node_find_closest (node, new, end, iter_cmp, cmp_data);
node_unlink (new);
--
2.5.3
|