use COPY_TO instead of a loop in fbytes_c1

& ryu comment changes
This commit is contained in:
dzaima 2022-12-31 20:49:50 +02:00
parent 8da9c4e3a5
commit 7d4677a8ff
2 changed files with 5 additions and 5 deletions

View File

@ -660,9 +660,9 @@ B fchars_c2(B d, B w, B x) {
static NFnDesc* fBytesDesc; static NFnDesc* fBytesDesc;
B fbytes_c1(B d, B x) { B fbytes_c1(B d, B x) {
I8Arr* tf = path_bytes(path_rel(nfn_objU(d), x)); I8Arr* tf = path_bytes(path_rel(nfn_objU(d), x));
usz ia = PIA(tf); u8* p = (u8*)tf->a; usz ia = PIA(tf);
u8* rp; B r = m_c8arrv(&rp, ia); u8* rp; B r = m_c8arrv(&rp, ia);
for (i64 i = 0; i < ia; i++) rp[i] = p[i]; COPY_TO(rp, el_i8, 0, taga(tf), 0, ia);
ptr_dec(tf); ptr_dec(tf);
return r; return r;
} }

View File

@ -455,7 +455,7 @@ static inline double int64Bits2Double(uint64_t bits) {
} }
bool ryu_s2d_n(u8* buffer, int len, f64* result) { bool ryu_s2d_n(u8* buffer, int len, f64* result) {
assert(len>0 && len<(1<<20)); // max length so that '0.0000[a billion zeroes]0000e1000000000' doesn't have to be handled assert(len>0 && len<(1<<20)); // max length so that '0.0000[a billion zeroes]0001e1000000000' doesn't have to be handled
int m10digits = 0; int m10digits = 0;
int dotIndex = len; int dotIndex = len;
int eIndex = len; int eIndex = len;
@ -474,7 +474,7 @@ bool ryu_s2d_n(u8* buffer, int len, f64* result) {
for (; i < len; i++) { for (; i < len; i++) {
char c = buffer[i]; char c = buffer[i];
if (c == '.') { if (c == '.') {
if (dotIndex!=len) return false; if (dotIndex!=len) return false; // "12.34.56"
dotIndex = i; dotIndex = i;
continue; continue;
} }
@ -508,7 +508,7 @@ bool ryu_s2d_n(u8* buffer, int len, f64* result) {
} }
} }
} }
if (i < len) return false; if (i < len) return false; // "123hello"
if (signedE) e10 = -e10; if (signedE) e10 = -e10;
e10+= offset; e10+= offset;