The sort order of dictionaries in Python is undocumented. Use tuples instead, which are documented to be lexically ordered.
Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all
Unified · Split
| @@ -32,7 +32,7 @@ def get_kallsyms_table(): · 31 unmodified lines | ||
| 32 | 32 | j = j +1 |
| 33 | 33 | if ((j % 100) == 0): |
| 34 | 34 | print "\r" + str(j) + "/" + str(linecount), |
| 35 | − kallsyms.append({ 'loc': loc, 'name' : name}) | |
| 35 | + kallsyms.append((loc, name)) | |
| 36 | 36 | |
| 37 | 37 | print "\r" + str(j) + "/" + str(linecount) |
| 38 | 38 | kallsyms.sort() |
| @@ -40,9 +40,9 @@ def get_kallsyms_table(): · 1 unmodified line | ||
| 40 | 40 | |
| 41 | 41 | def get_sym(sloc): |
| 42 | 42 | loc = int(sloc) |
| 43 | − for i in kallsyms[::-1]: | |
| 44 | − if loc >= i['loc']: | |
| 45 | − return (i['name'], loc - i['loc']) | |
| 43 | + for symloc, name in kallsyms[::-1]: | |
| 44 | + if loc >= symloc: | |
| 45 | + return (name, loc - symloc) | |
| 46 | 46 | return (None, 0) |
| 47 | 47 | |
| 48 | 48 | def print_drop_table(): |