summaryrefslogtreecommitdiff
path: root/libctf/ctf-decls.h
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2020-06-30 18:02:28 +0100
committerNick Alcock <nick.alcock@oracle.com>2020-07-22 17:57:52 +0100
commit67d4cc671b7b3c49f748546a510005333fcbc465 (patch)
treeff52ed7f5ca688b4b20b9b27656cc2bf269c8cad /libctf/ctf-decls.h
parente28591b3dfc3958b954fc5264e5aaa94a9855f5b (diff)
downloadbinutils-gdb-67d4cc671b7b3c49f748546a510005333fcbc465.tar.gz
libctf: pass the thunk down properly when wrapping qsort_r
When wrapping qsort_r on a system like FreeBSD on which the compar argument comes first, we wrap the passed arg in a thunk so we can pass down both the caller-supplied comparator function and its argument. We should pass the *argument* down to the comparator, not the thunk, which is basically random nonsense on the stack from the point of view of the caller of qsort_r. libctf/ ctf-decls.h (ctf_qsort_compar_thunk): Fix arg passing.
Diffstat (limited to 'libctf/ctf-decls.h')
-rw-r--r--libctf/ctf-decls.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/libctf/ctf-decls.h b/libctf/ctf-decls.h
index 51041c592f4..c47a72e722f 100644
--- a/libctf/ctf-decls.h
+++ b/libctf/ctf-decls.h
@@ -46,7 +46,7 @@ ctf_qsort_compar_thunk (void *arg, const void *a, const void *b)
{
struct ctf_qsort_arg *qsort_arg = (struct ctf_qsort_arg *) arg;
- return qsort_arg->compar (a, b, arg);
+ return qsort_arg->compar (a, b, qsort_arg->arg);
}
static inline void