diff options
author | Alan Modra <amodra@gmail.com> | 2019-10-14 13:53:40 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-10-14 16:47:13 +1030 |
commit | 47f6ff2f9e679cd1f7af6fecbba5f62daf3bee95 (patch) | |
tree | 7081cd5447bc4af5a12bfd3a404f363b5481bf72 /bfd/syms.c | |
parent | 8025b0554c5a2e2fe56b769fd556fe13268b4879 (diff) | |
download | gdb-47f6ff2f9e679cd1f7af6fecbba5f62daf3bee95.zip gdb-47f6ff2f9e679cd1f7af6fecbba5f62daf3bee95.tar.gz gdb-47f6ff2f9e679cd1f7af6fecbba5f62daf3bee95.tar.bz2 |
qsort: syms.c stab sorting
* syms.c (struct indexentry): Add idx field.
(cmpindexentry): Final sort on idx.
(_bfd_stab_section_find_nearest_line): Set idx.
Diffstat (limited to 'bfd/syms.c')
-rw-r--r-- | bfd/syms.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -884,6 +884,7 @@ struct indexentry char *directory_name; char *file_name; char *function_name; + int idx; }; /* Compare two indexentry structures. This is called via qsort. */ @@ -896,10 +897,9 @@ cmpindexentry (const void *a, const void *b) if (contestantA->val < contestantB->val) return -1; - else if (contestantA->val > contestantB->val) + if (contestantA->val > contestantB->val) return 1; - else - return 0; + return contestantA->idx - contestantB->idx; } /* A pointer to this structure is stored in *pinfo. */ @@ -1198,6 +1198,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd, info->indextable[i].directory_name = directory_name; info->indextable[i].file_name = file_name; info->indextable[i].function_name = NULL; + info->indextable[i].idx = i; ++i; } @@ -1257,6 +1258,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd, info->indextable[i].directory_name = directory_name; info->indextable[i].file_name = file_name; info->indextable[i].function_name = function_name; + info->indextable[i].idx = i; ++i; break; } @@ -1270,6 +1272,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd, info->indextable[i].directory_name = directory_name; info->indextable[i].file_name = file_name; info->indextable[i].function_name = NULL; + info->indextable[i].idx = i; ++i; } @@ -1279,6 +1282,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd, info->indextable[i].directory_name = NULL; info->indextable[i].file_name = NULL; info->indextable[i].function_name = NULL; + info->indextable[i].idx = i; ++i; info->indextablesize = i; |