summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>1997-07-18 14:35:58 +0000
committerMarius Vollmer <mvo@zagadka.de>1997-07-18 14:35:58 +0000
commitd9dfcf8084c4173f648268cc623d44d2cd18592f (patch)
tree217676957d8affd0751632c58b982d6ff5ac4bc7
parentee3ea81d9addcd57531fc20f109f7c8785c05d1b (diff)
downloadguile-d9dfcf8084c4173f648268cc623d44d2cd18592f.tar.gz
* root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
(scm_make_root): Call scm_copy_fluids to make fluid bindings unique for the new root when it has a parent.
-rw-r--r--libguile/root.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libguile/root.c b/libguile/root.c
index 910ee3178..941c3bda3 100644
--- a/libguile/root.c
+++ b/libguile/root.c
@@ -49,6 +49,7 @@
#include "smob.h"
#include "pairs.h"
#include "throw.h"
+#include "fluids.h"
#include "root.h"
@@ -83,6 +84,7 @@ mark_root (root)
scm_gc_mark (s->def_inp);
scm_gc_mark (s->def_outp);
scm_gc_mark (s->def_errp);
+ scm_gc_mark (s->fluids);
scm_gc_mark (s->top_level_lookup_closure_var);
scm_gc_mark (s->system_transformer);
scm_gc_mark (s->the_last_stack_var);
@@ -135,6 +137,7 @@ scm_make_root (parent)
if (SCM_NIMP (parent) && SCM_ROOTP (parent))
{
memcpy (root_state, SCM_ROOT_STATE (parent), sizeof (scm_root_state));
+ scm_copy_fluids (root_state);
root_state->parent = parent;
}
else