mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-13 07:47:39 +02:00
Consolidate code for (bytevector)
This commit is contained in:
parent
29f49d9704
commit
d3f1e7a1ca
1 changed files with 1 additions and 23 deletions
24
runtime.c
24
runtime.c
|
@ -1418,29 +1418,7 @@ object Cyc_make_bytevector(void *data, object cont, int argc, object len, ...) {
|
|||
}
|
||||
|
||||
void dispatch_bytevector(void *data, int _argc, object clo, object cont, object bval, ...) {
|
||||
int argc = _argc - 1;
|
||||
int i = 0, val;
|
||||
va_list ap;
|
||||
object tmp;
|
||||
char *buffer;
|
||||
make_empty_bytevector(bv);
|
||||
if (argc > 0) {
|
||||
Cyc_check_int(data, bval);
|
||||
buffer = alloca(sizeof(char) * argc);
|
||||
val = obj_is_int(bval) ? obj_obj2int(bval) : integer_value(bval);
|
||||
buffer[i] = val;
|
||||
va_start(ap, bval);
|
||||
for(i = 1; i < argc; i++) {
|
||||
tmp = va_arg(ap, object);
|
||||
Cyc_check_int(data, tmp);
|
||||
val = obj_is_int(tmp) ? obj_obj2int(tmp) : integer_value(tmp);
|
||||
buffer[i] = (unsigned char) val;
|
||||
}
|
||||
va_end(ap);
|
||||
bv.len = argc;
|
||||
bv.data = buffer;
|
||||
}
|
||||
return_closcall1(data, cont, &bv);
|
||||
Cyc_bytevector_va_list((_argc - 1));
|
||||
}
|
||||
|
||||
object Cyc_bytevector(void *data, object cont, int _argc, object bval, ...) {
|
||||
|
|
Loading…
Add table
Reference in a new issue