| ... | ... | @@ -3079,8 +3079,14 @@ pub fn sortShdrs( |
| 3079 | 3079 | }; |
| 3080 | 3080 | |
| 3081 | 3081 | pub fn lessThan(ctx: Context, lhs: @This(), rhs: @This()) bool { |
| 3082 | | return shdrRank(ctx.shdrs[lhs.shndx], ctx.shstrtab) < |
| 3083 | | shdrRank(ctx.shdrs[rhs.shndx], ctx.shstrtab); |
| 3082 | const lhs_rank = shdrRank(ctx.shdrs[lhs.shndx], ctx.shstrtab); |
| 3083 | const rhs_rank = shdrRank(ctx.shdrs[rhs.shndx], ctx.shstrtab); |
| 3084 | if (lhs_rank == rhs_rank) { |
| 3085 | const lhs_name = shString(ctx.shstrtab, ctx.shdrs[lhs.shndx].sh_name); |
| 3086 | const rhs_name = shString(ctx.shstrtab, ctx.shdrs[rhs.shndx].sh_name); |
| 3087 | return std.mem.lessThan(u8, lhs_name, rhs_name); |
| 3088 | } |
| 3089 | return lhs_rank < rhs_rank; |
| 3084 | 3090 | } |
| 3085 | 3091 | }; |
| 3086 | 3092 | |
| ... | ... | @@ -3096,7 +3102,7 @@ pub fn sortShdrs( |
| 3096 | 3102 | .shdrs = shdrs, |
| 3097 | 3103 | .shstrtab = shstrtab, |
| 3098 | 3104 | }; |
| 3099 | | mem.sort(Entry, entries, sort_context, Entry.lessThan); |
| 3105 | mem.sortUnstable(Entry, entries, sort_context, Entry.lessThan); |
| 3100 | 3106 | |
| 3101 | 3107 | const backlinks = try gpa.alloc(u32, entries.len); |
| 3102 | 3108 | defer gpa.free(backlinks); |