ref: 94b9b2bac35c30b8128dcbaa9aa8a40cd56123ec
parent: 61a403c4f8a351762021bd34d4e041670e688f9f
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Sun Apr 6 23:46:36 EDT 2025
numerical constructors: require less than two args
--- a/src/cvalues.c
+++ b/src/cvalues.c
@@ -259,7 +259,8 @@
if(nargs == 0){
PUSH(fixnum(0));
args = sl.sp-1;
- }
+ }else
+ argcount(nargs, 1);
Rune r;
cvalue_rune_init(sl_runetype, args[0], &r);
return mk_rune(r);
@@ -272,7 +273,8 @@
if(nargs == 0){ \
PUSH(fixnum(0)); \
args = sl.sp-1; \
- } \
+ }else \
+ argcount(nargs, 1); \
sl_v v = cprim(sl_##typenam##type, sizeof(ctype)); \
cvalue_##ctype##_init(sl_##typenam##type, args[0], cp_data(ptr(v))); \
return v; \
@@ -285,7 +287,8 @@
if(nargs == 0){ \
PUSH(fixnum(0)); \
args = sl.sp-1; \
- } \
+ }else \
+ argcount(nargs, 1); \
sl_v v; \
if(tag < T_UNBOXED_NUM && \
sizeof(ctype) < sizeof(sl_v)){ \
@@ -372,7 +375,8 @@
if(nargs == 0){
PUSH(fixnum(0));
args = sl.sp-1;
- }
+ }else
+ argcount(nargs, 1);
sl_v cv = cvalue(sl_mptype, sizeof(mpint*));
cvalue_mp_init(sl_mptype, args[0], cvalue_data(cv));
return cv;
--
⑨