Signed-off-by: Martin Milata mmilata@redhat.com --- include/utils.h | 7 +++++++ lib/core_fingerprint.c | 10 ++-------- lib/normalize.c | 8 +------- lib/utils.c | 6 ++++++ 4 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/include/utils.h b/include/utils.h index 68e763b..5684620 100644 --- a/include/utils.h +++ b/include/utils.h @@ -106,6 +106,13 @@ int sr_strcmp0(const char *s1, const char *s2);
/** + * A wrapper around sr_strcmp0 that takes pointers to strings. Can be used as a + * paramter to qsort or bsearch. + */ +int +sr_ptrstrcmp(const void *s1, const void *s2); + +/** * A strchr() variant providing line and column in the string s * indicating where the char c was found. * @param line diff --git a/lib/core_fingerprint.c b/lib/core_fingerprint.c index aeea837..af33a93 100644 --- a/lib/core_fingerprint.c +++ b/lib/core_fingerprint.c @@ -280,12 +280,6 @@ get_libcalls(char ***symbol_list, return true; }
-static int -strcmp_wrapper(const char **s1, const char **s2) -{ - return strcmp(*s1, *s2); -} - static bool fp_libcalls(struct sr_strbuf *fingerprint, uint64_t function_start_address, @@ -310,7 +304,7 @@ fp_libcalls(struct sr_strbuf *fingerprint, return false;
qsort(symbol_list, symbol_list_size, - sizeof(char*), (comparison_fn_t)strcmp_wrapper); + sizeof(char*), (comparison_fn_t)sr_ptrstrcmp);
/* Make it unique. */ sr_struniq(symbol_list, &symbol_list_size); @@ -349,7 +343,7 @@ fp_calltree_leaves(struct sr_strbuf *fingerprint, return false;
qsort(symbol_list, symbol_list_size, - sizeof(char*), (comparison_fn_t)strcmp_wrapper); + sizeof(char*), (comparison_fn_t)sr_ptrstrcmp);
/* Make it unique. */ sr_struniq(symbol_list, &symbol_list_size); diff --git a/lib/normalize.c b/lib/normalize.c index 9582a5f..7cd8144 100644 --- a/lib/normalize.c +++ b/lib/normalize.c @@ -380,12 +380,6 @@ sr_normalize_gdb_stacktrace(struct sr_gdb_stacktrace *stacktrace) } }
-static int -ptrstrcmp(const void *s1, const void *s2) -{ - return sr_strcmp0(*(const char**)s1, *(const char**)s2); -} - void sr_normalize_koops_stacktrace(struct sr_koops_stacktrace *stacktrace) { @@ -433,7 +427,7 @@ sr_normalize_koops_stacktrace(struct sr_koops_stacktrace *stacktrace) blacklist, sizeof(blacklist) / sizeof(blacklist[0]), sizeof(blacklist[0]), - ptrstrcmp); + sr_ptrstrcmp);
/* do not drop frames belonging to a module */ if (!frame->module_name && in_blacklist) diff --git a/lib/utils.c b/lib/utils.c index 1b9d982..ac56c7e 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -157,6 +157,12 @@ sr_strcmp0(const char *s1, const char *s2) return s2 ? -1 : 0; }
+int +sr_ptrstrcmp(const void *s1, const void *s2) +{ + return sr_strcmp0(*(const char**)s1, *(const char**)s2); +} + char * sr_strchr_location(const char *s, int c, int *line, int *column) {