diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/perf/builtin-annotate.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index 1ec741615814..a33087328bd4 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c | |||
| @@ -82,6 +82,16 @@ struct sort_entry { | |||
| 82 | size_t (*print)(FILE *fp, struct hist_entry *); | 82 | size_t (*print)(FILE *fp, struct hist_entry *); |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | static int64_t cmp_null(void *l, void *r) | ||
| 86 | { | ||
| 87 | if (!l && !r) | ||
| 88 | return 0; | ||
| 89 | else if (!l) | ||
| 90 | return -1; | ||
| 91 | else | ||
| 92 | return 1; | ||
| 93 | } | ||
| 94 | |||
| 85 | /* --sort pid */ | 95 | /* --sort pid */ |
| 86 | 96 | ||
| 87 | static int64_t | 97 | static int64_t |
| @@ -116,14 +126,8 @@ sort__comm_collapse(struct hist_entry *left, struct hist_entry *right) | |||
| 116 | char *comm_l = left->thread->comm; | 126 | char *comm_l = left->thread->comm; |
| 117 | char *comm_r = right->thread->comm; | 127 | char *comm_r = right->thread->comm; |
| 118 | 128 | ||
| 119 | if (!comm_l || !comm_r) { | 129 | if (!comm_l || !comm_r) |
| 120 | if (!comm_l && !comm_r) | 130 | return cmp_null(comm_l, comm_r); |
| 121 | return 0; | ||
| 122 | else if (!comm_l) | ||
| 123 | return -1; | ||
| 124 | else | ||
| 125 | return 1; | ||
| 126 | } | ||
| 127 | 131 | ||
| 128 | return strcmp(comm_l, comm_r); | 132 | return strcmp(comm_l, comm_r); |
| 129 | } | 133 | } |
| @@ -149,14 +153,8 @@ sort__dso_cmp(struct hist_entry *left, struct hist_entry *right) | |||
| 149 | struct dso *dso_l = left->dso; | 153 | struct dso *dso_l = left->dso; |
| 150 | struct dso *dso_r = right->dso; | 154 | struct dso *dso_r = right->dso; |
| 151 | 155 | ||
| 152 | if (!dso_l || !dso_r) { | 156 | if (!dso_l || !dso_r) |
| 153 | if (!dso_l && !dso_r) | 157 | return cmp_null(dso_l, dso_r); |
| 154 | return 0; | ||
| 155 | else if (!dso_l) | ||
| 156 | return -1; | ||
| 157 | else | ||
| 158 | return 1; | ||
| 159 | } | ||
| 160 | 158 | ||
| 161 | return strcmp(dso_l->name, dso_r->name); | 159 | return strcmp(dso_l->name, dso_r->name); |
| 162 | } | 160 | } |
