diff --git a/src/mzscheme/gc2/fnls.c b/src/mzscheme/gc2/fnls.c index 597f0e03fe..78794ec27f 100644 --- a/src/mzscheme/gc2/fnls.c +++ b/src/mzscheme/gc2/fnls.c @@ -30,6 +30,7 @@ static int num_fnls; #define Tree Fnl #define Splay_Item(t) ((unsigned long)t->p) +#define Set_Splay_Item(t, v) (t)->p = (void *)v #include "../sgc/splay.c" void GC_set_finalizer(void *p, int tagged, int level, void (*f)(void *p, void *data), diff --git a/src/mzscheme/sgc/splay.c b/src/mzscheme/sgc/splay.c index c21971ea2e..6929196c6c 100644 --- a/src/mzscheme/sgc/splay.c +++ b/src/mzscheme/sgc/splay.c @@ -49,6 +49,7 @@ struct tree_node { void *data; }; # define Splay_Item(t) t->item +# define Set_Splay_Item(t, v) t->item = v #endif static Tree * splay (unsigned long i, Tree * t) { @@ -98,7 +99,7 @@ static Tree * splay (unsigned long i, Tree * t) { static Tree * splay_insert(unsigned long i, Tree * new, Tree * t) { /* Insert i into the tree t, unless it's already there. */ /* Return a pointer to the resulting tree. */ - Splay_Item(new) = i; + Set_Splay_Item(new, i); if (t == NULL) { new->left = new->right = NULL; return new;