From d66fa174f01310189c0daba1efaeee00bb50d1de Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Mon, 24 Apr 2023 04:12:08 -0400 Subject: WIP (most tests pass): Move recollect into C (Its Tcl implementation was the last bottleneck) --- lib/c.tcl | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/c.tcl b/lib/c.tcl index ead7ff65..568fd791 100644 --- a/lib/c.tcl +++ b/lib/c.tcl @@ -42,6 +42,7 @@ namespace eval c { #include #include #include + #include } variable code [list] variable objtypes [list] @@ -64,7 +65,9 @@ namespace eval c { variable argtypes { int { expr {{ int $argname; Tcl_GetIntFromObj(interp, $obj, &$argname); }}} + bool { expr {{ int $argname; Tcl_GetIntFromObj(interp, $obj, &$argname); }}} int32_t { expr {{ int $argname; Tcl_GetIntFromObj(interp, $obj, &$argname); }}} + char { expr {{ char $argname = Tcl_GetString($obj)[0]; }}} size_t { expr {{ size_t $argname; Tcl_GetLongFromObj(interp, $obj, (long *)&$argname); }}} intptr_t { expr {{ intptr_t $argname; Tcl_GetLongFromObj(interp, $obj, (long *)&$argname); }}} uint16_t { expr {{ uint16_t $argname; Tcl_GetIntFromObj(interp, $obj, (int *)&$argname); }}} @@ -110,6 +113,7 @@ namespace eval c { variable rtypes { int { expr {{ $robj = Tcl_NewIntObj($rvalue); }}} int32_t { expr {{ $robj = Tcl_NewIntObj($rvalue); }}} + char { expr {{ $robj = Tcl_ObjPrintf("%c", $rvalue); }}} bool { expr {{ $robj = Tcl_NewIntObj($rvalue); }}} uint16_t { expr {{ $robj = Tcl_NewIntObj($rvalue); }}} uint32_t { expr {{ $robj = Tcl_NewIntObj($rvalue); }}} -- cgit v1.2.3