aboutsummaryrefslogtreecommitdiff
path: root/guile_type_helpers.c
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@hornquist.se>2019-02-26 01:14:02 +0100
committerHugo Hörnquist <hugo@hornquist.se>2019-02-26 01:14:02 +0100
commita6aa6ff2fffe298b90788a07059902d85e3a1391 (patch)
tree61f87805e8c86e1062be512f01ebf21909b65971 /guile_type_helpers.c
parentStart on propper vcalendar scheme library. (diff)
downloadcalp-a6aa6ff2fffe298b90788a07059902d85e3a1391.tar.gz
calp-a6aa6ff2fffe298b90788a07059902d85e3a1391.tar.xz
Add %vcomponent-parent.
Diffstat (limited to 'guile_type_helpers.c')
-rw-r--r--guile_type_helpers.c10
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);
}
-