Fix unsafeCompare (#336)

This commit is contained in:
Max Graey
2018-11-19 13:23:45 +02:00
committed by Daniel Wirtz
parent 4944280cdc
commit 6393921c12
15 changed files with 1963 additions and 1861 deletions

View File

@ -689,7 +689,7 @@ export function dtoa_stream(buffer: usize, offset: usize, value: f64): u32 {
let sign = <i32>(value < 0);
let len = 8 + sign;
let source = changetype<usize>(select<String>("-Infinity", "Infinity", sign));
memory.copy(buffer + STRING_HEADER_SIZE, source, len << 1);
memory.copy(buffer + STRING_HEADER_SIZE, source + STRING_HEADER_SIZE, len << 1);
return len;
}
}

View File

@ -43,7 +43,7 @@ export function compareUnsafe(str1: String, offset1: usize, str2: String, offset
var ptr1 = changetype<usize>(str1) + (offset1 << 1);
var ptr2 = changetype<usize>(str2) + (offset2 << 1);
while (len && !(cmp = <i32>load<u16>(ptr1, HEADER_SIZE) - <i32>load<u16>(ptr2, HEADER_SIZE))) {
--len, ++ptr1, ++ptr2;
--len, ptr1 += 2, ptr2 += 2;
}
return cmp;
}