aboutsummaryrefslogtreecommitdiff
path: root/guile_type_helpers.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--guile_type_helpers.c9
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;