projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Preserve order of records within cluster PAZ-902
[pazpar2-moved-to-github.git]
/
src
/
reclists.c
diff --git
a/src/reclists.c
b/src/reclists.c
index
0a9bd8c
..
8ef9ba4
100644
(file)
--- a/
src/reclists.c
+++ b/
src/reclists.c
@@
-366,21
+366,20
@@
struct record_cluster *reclist_insert(struct reclist *l,
// We found a matching record. Merge them
if (!strcmp(merge_key, (*p)->record->merge_key))
{
// We found a matching record. Merge them
if (!strcmp(merge_key, (*p)->record->merge_key))
{
- struct record_cluster *existing = (*p)->record;
- struct record *re = existing->records;
+ struct record **re;
- for (; re; re = re->next)
+ cluster = (*p)->record;
+ for (re = &cluster->records; *re; re = &(*re)->next)
{
{
- if (re->client == record->client &&
- record_compare(record, re, service))
+ if ((*re)->client == record->client &&
+ record_compare(record, *re, service))
{
yaz_mutex_leave(l->mutex);
return 0;
}
}
{
yaz_mutex_leave(l->mutex);
return 0;
}
}
- record->next = existing->records;
- existing->records = record;
- cluster = existing;
+ *re = record;
+ record->next = 0;
break;
}
}
break;
}
}