diff options
author | Hugo Hörnquist <hugo@hornquist.se> | 2019-02-26 01:14:02 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@hornquist.se> | 2019-02-26 01:14:02 +0100 |
commit | a6aa6ff2fffe298b90788a07059902d85e3a1391 (patch) | |
tree | 61f87805e8c86e1062be512f01ebf21909b65971 /guile_type_helpers.c | |
parent | Start on propper vcalendar scheme library. (diff) | |
download | calp-a6aa6ff2fffe298b90788a07059902d85e3a1391.tar.gz calp-a6aa6ff2fffe298b90788a07059902d85e3a1391.tar.xz |
Add %vcomponent-parent.
Diffstat (limited to '')
-rw-r--r-- | guile_type_helpers.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/guile_type_helpers.c b/guile_type_helpers.c index 00c68b18..5c7090ec 100644 --- a/guile_type_helpers.c +++ b/guile_type_helpers.c @@ -1,4 +1,5 @@ #include "guile_type_helpers.h" +#include "guile_interface.h" #include "macro.h" @@ -11,17 +12,12 @@ SCM scm_from_strbuf(strbuf* s) { return s->scm; } -SCM scm_from_vector(VECT(vcomponent)* vect, SCM element_type) { +SCM scm_from_vector(VECT(vcomponent)* vect) { SCM l = SCM_EOL; for (size_t i = 0; i < vect->length; i++) { vcomponent* v = GET(VECT(vcomponent))(vect, i); - if (v->scm == NULL) { - v->scm = scm_make_foreign_object_1 (element_type, v); - scm_gc_protect_object(v->scm); - } - l = scm_cons(v->scm, l); + l = scm_cons(scm_from_vcomponent(v), l); } return scm_reverse(l); } - |