mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-25 13:05:05 +02:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
d5ac136642
1 changed files with 10 additions and 12 deletions
22
runtime.c
22
runtime.c
|
@ -1594,21 +1594,19 @@ object Cyc_list2string(void *data, object cont, object lst)
|
||||||
object len;
|
object len;
|
||||||
|
|
||||||
Cyc_check_pair_or_null(data, lst);
|
Cyc_check_pair_or_null(data, lst);
|
||||||
|
|
||||||
len = Cyc_length(data, lst); // Inefficient, walks whole list
|
len = Cyc_length(data, lst); // Inefficient, walks whole list
|
||||||
buf = alloca(sizeof(char) * (obj_obj2int(len) + 1));
|
|
||||||
while ((lst != NULL)) {
|
|
||||||
if (!obj_is_char(car(lst))) {
|
|
||||||
Cyc_rt_raise2(data, "Expected character but received", car(lst));
|
|
||||||
}
|
|
||||||
buf[i++] = obj_obj2char(car(lst));
|
|
||||||
lst = cdr(lst);
|
|
||||||
}
|
|
||||||
buf[i] = '\0';
|
|
||||||
|
|
||||||
//{ make_string_noalloc(str, buf, i);
|
|
||||||
{
|
{
|
||||||
make_string(str, buf);
|
make_string_noalloc(str, NULL, (obj_obj2int(len)));
|
||||||
|
str.str = buf = alloca(sizeof(char) * (obj_obj2int(len) + 1));
|
||||||
|
while ((lst != NULL)) {
|
||||||
|
if (!obj_is_char(car(lst))) {
|
||||||
|
Cyc_rt_raise2(data, "Expected character but received", car(lst));
|
||||||
|
}
|
||||||
|
buf[i++] = obj_obj2char(car(lst));
|
||||||
|
lst = cdr(lst);
|
||||||
|
}
|
||||||
|
buf[i] = '\0';
|
||||||
_return_closcall1(data, cont, &str);
|
_return_closcall1(data, cont, &str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue