History

cvalues: simplify/clean up return_from_* and its calls

Sigrid Solveig Haflínudóttir committed 1 month ago

Commit ce486cd1 parent 14310041 file · +11 −19Browse files

Showing the changes to src (1 of 1 file). Show all

Unified · Split

src/cvalues.c+11−19
@@ -1029,29 +1029,21 @@ mk_cbuiltin(const char *name, sl_builtinfn f) · 1028 unmodified lines
10291029 sl_##name##type = pt; \
10301030 }while(0)
10311031
1032−#define RETURN_NUM_AS(var, type) return mk_##type(var)
1033−
10341032 sl_constfn
10351033 sl_v
1036−return_from_u64(u64int Uaccum)
1034+return_from_u64(u64int u)
10371035 {
1038− if(fits_fixnum(Uaccum))
1039− return fixnum((sl_fx)Uaccum);
1040− if(sl_unlikely(Uaccum > (u64int)INT64_MAX))
1041− RETURN_NUM_AS(Uaccum, u64);
1042− if(Uaccum > (u64int)UINT32_MAX)
1043− RETURN_NUM_AS(Uaccum, s64);
1044− if(Uaccum > (u64int)INT32_MAX)
1045− RETURN_NUM_AS(Uaccum, u32);
1046− RETURN_NUM_AS(Uaccum, s32);
1036+ if(fits_fixnum(u))
1037+ return fixnum((sl_fx)u);
1038+ return mk_u64(u);
10471039 }
10481040
10491041 sl_v
1050−return_from_s64(s64int Saccum)
1042+return_from_s64(s64int s)
10511043 {
1052− if(fits_fixnum(Saccum))
1053− return fixnum((sl_fx)Saccum);
1054− RETURN_NUM_AS(vtomp(Saccum, nil), bignum);
1044+ if(fits_fixnum(s))
1045+ return fixnum((sl_fx)s);
1046+ return mk_bignum(vtomp(s, nil));
10551047 }
10561048
10571049 #define ACCUM_DEFAULT 0
@@ -1494,12 +1486,12 @@ BUILTIN("ash", ash) · 436 unmodified lines
14941486 if(sl_unlikely(n < -63))
14951487 n = -63;
14961488 u >>= -n;
1497− return fits_fixnum(u) ? fixnum(u) : return_from_u64(u);
1489+ return return_from_u64(u);
14981490 }else if(n >= 64 || uash_overflow_64(u, n, &u)){
14991491 mp = uvtomp(u, nil);
15001492 mpleft(mp, n, mp);
15011493 }else{
1502− return fits_fixnum(u) ? fixnum(u) : return_from_u64(u);
1494+ return return_from_u64(u);
15031495 }
15041496 }else if(isfixnum(a) || isubnum(a)){
15051497 accum = isfixnum(a) ? numval(a) : ubnumval(a);
@@ -1513,7 +1505,7 @@ signedshift: · 7 unmodified lines
15131505 mp = vtomp(accum, nil);
15141506 mpleft(mp, n, mp);
15151507 }else{
1516− return fits_fixnum(accum) ? fixnum(accum) : return_from_s64(accum);
1508+ return return_from_s64(accum);
15171509 }
15181510 }
15191511 if(mp != nil){

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t