w6l: replace streq/streqd clones with strings.compare (Wave-2 hand-rolled->lib)
This commit is contained in:
@@ -26,6 +26,7 @@ package w6l;
|
||||
|
||||
import os;
|
||||
import rt;
|
||||
import strings;
|
||||
import sym;
|
||||
|
||||
// ELF constants
|
||||
@@ -152,16 +153,6 @@ fn alignup(off: u64, a: u64) u64 = {
|
||||
return (off + a - 1u64) & ~(a - 1u64);
|
||||
};
|
||||
|
||||
fn streqd(a: str, b: str) bool = {
|
||||
if (a.len != b.len) { return false; };
|
||||
let i: i32 = 0;
|
||||
for (i < a.len) {
|
||||
if (a[i] != b[i]) { return false; };
|
||||
i += 1;
|
||||
};
|
||||
return true;
|
||||
};
|
||||
|
||||
// ---- main entry --------------------------------------------------------
|
||||
|
||||
export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
|
||||
@@ -274,7 +265,7 @@ export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
|
||||
let existing: str;
|
||||
existing.ptr = vernameptrarr[kk];
|
||||
existing.len = drdi32(vernamelenbuf.ptr, (kk: u64) * 4u64);
|
||||
if (streqd(existing, vname)) {
|
||||
if (strings.compare(existing, vname) == 0) {
|
||||
seen = 1; k = added;
|
||||
} else { k += 1; };
|
||||
};
|
||||
@@ -394,7 +385,7 @@ export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
|
||||
let exi: str;
|
||||
exi.ptr = vernameptrarr[vk];
|
||||
exi.len = drdi32(vernamelenbuf.ptr, (vk: u64) * 4u64);
|
||||
if (streqd(exi, vname)) {
|
||||
if (strings.compare(exi, vname) == 0) {
|
||||
let other: u16 = drdu16(vervnaother.ptr, (vk: u64) * 2u64);
|
||||
dwr16(versymfor.ptr, (pi: u64) * 2u64, other);
|
||||
matched = 1;
|
||||
|
||||
Reference in New Issue
Block a user