summaryrefslogtreecommitdiff
path: root/src/klist.c
diff options
context:
space:
mode:
authorjcid <devnull@localhost>2007-10-29 23:18:25 +0100
committerjcid <devnull@localhost>2007-10-29 23:18:25 +0100
commitffb17459b3ccb49ae0cfbe5ae2cd8d63a458d5d5 (patch)
tree0c3080b18b37b2fd6230c56a385f7500291d06cf /src/klist.c
parent989a4d35b5f43bc72bfd930d409362fbc1a48a3f (diff)
Fixed a subtle bug in klist that was affecting IO.
Diffstat (limited to 'src/klist.c')
-rw-r--r--src/klist.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/klist.c b/src/klist.c
index 113472b6..b353bb51 100644
--- a/src/klist.c
+++ b/src/klist.c
@@ -18,6 +18,7 @@
* remains with the caller.
*/
+#include "msg.h"
#include "klist.h"
@@ -30,6 +31,14 @@ static int Klist_node_by_key_cmp(const void *Node, const void *key)
}
/*
+ * Compare function for searching data by node
+ */
+static int Klist_node_by_node_cmp(const void *Node1, const void *Node2)
+{
+ return ((KlistNode_t *)Node1)->Key - ((KlistNode_t *)Node2)->Key;
+}
+
+/*
* Return the data pointer for a given Key (or NULL if not found)
*/
void *a_Klist_get_data(Klist_t *Klist, int Key)
@@ -68,7 +77,7 @@ int a_Klist_insert(Klist_t **Klist, void *Data)
Node = dNew(KlistNode_t, 1);
Node->Key = (*Klist)->Counter;
Node->Data = Data;
- dList_insert_sorted((*Klist)->List, Node, Klist_node_by_key_cmp);
+ dList_insert_sorted((*Klist)->List, Node, Klist_node_by_node_cmp);
return (*Klist)->Counter;
}