diff options
Diffstat (limited to '')
-rw-r--r-- | guile_type_helpers.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/guile_type_helpers.c b/guile_type_helpers.c index 3f76c2d4..485827a0 100644 --- a/guile_type_helpers.c +++ b/guile_type_helpers.c @@ -2,8 +2,13 @@ #include "macro.h" -SCM scm_from_strbuf(strbuf* s) - { return scm_from_utf8_stringn (s->mem, s->len - 1); } +SCM scm_from_strbuf(strbuf* s) { + if (s->scm == NULL) { + s->scm = scm_from_utf8_stringn (s->mem, s->len - 1); + } + + return s->scm; +} SCM scm_from_vector(VECT(vcomponent)* vect, SCM element_type) { SCM l = SCM_EOL; |