]> granicus.if.org Git - strace/commitdiff
xlat_search: change type of integer argument to uint64_t
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 28 Apr 2016 18:37:54 +0000 (18:37 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 28 Apr 2016 19:04:02 +0000 (19:04 +0000)
This is necessary for the upcoming change of xlat.val type.
All users of addflags are already prepared for this change.

* defs.h (xlat_search): Change type of integer argument to uint64_t.
* util.c (xlat_search): Likewise.  Pass it by pointer.
(xlat_bsearch_compare): Treat first argument as a pointer.
Patch by Jeff Mahoney <jeffm@suse.com>.

defs.h
util.c

diff --git a/defs.h b/defs.h
index 3855ce5f8280dfc1e117998c71eb8c5842bf9d47..1643e119a238509907cd5457762917d211859e3c 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -522,7 +522,7 @@ extern int pathtrace_match(struct tcb *);
 extern int getfdpath(struct tcb *, int, char *, unsigned);
 
 extern const char *xlookup64(const struct xlat *, const uint64_t);
-extern const char *xlat_search(const struct xlat *, const size_t, const unsigned int);
+extern const char *xlat_search(const struct xlat *, const size_t, const uint64_t);
 
 extern unsigned long get_pagesize(void);
 extern int string_to_uint(const char *str);
diff --git a/util.c b/util.c
index 2b4178ca620349bcfbb7cd9f59c1a5ec66ede172..09ce6d0bc35349c7176a0981343bb6ceeec13aa5 100644 (file)
--- a/util.c
+++ b/util.c
@@ -132,16 +132,16 @@ xlookup64(const struct xlat *xlat, const uint64_t val)
 static int
 xlat_bsearch_compare(const void *a, const void *b)
 {
-       const unsigned int val1 = (const unsigned long) a;
-       const unsigned int val2 = ((const struct xlat *) b)->val;
+       const uint64_t val1 = *(const uint64_t *) a;
+       const uint64_t val2 = ((const struct xlat *) b)->val;
        return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0;
 }
 
 const char *
-xlat_search(const struct xlat *xlat, const size_t nmemb, const unsigned int val)
+xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val)
 {
        const struct xlat *e =
-               bsearch((const void*) (const unsigned long) val,
+               bsearch((const void*) &val,
                        xlat, nmemb, sizeof(*xlat), xlat_bsearch_compare);
 
        return e ? e->str : NULL;