wbox 1678 src/gauche.h SCM_EXTERN int Scm_WeakBoxEmptyP(ScmWeakBox *wbox); wbox 1679 src/gauche.h SCM_EXTERN void Scm_WeakBoxSet(ScmWeakBox *wbox, void *value); wbox 1680 src/gauche.h SCM_EXTERN void *Scm_WeakBoxRef(ScmWeakBox *wbox); wbox 158 src/weak.c static void wbox_setvalue(ScmWeakBox *wbox, void *value) wbox 161 src/weak.c wbox->ptr = value; wbox 163 src/weak.c GC_general_register_disappearing_link((GC_PTR)&wbox->ptr, base); wbox 164 src/weak.c wbox->registered = TRUE; wbox 166 src/weak.c wbox->registered = FALSE; wbox 173 src/weak.c ScmWeakBox *wbox = SCM_NEW_ATOMIC(ScmWeakBox); wbox 174 src/weak.c wbox_setvalue(wbox, value); wbox 175 src/weak.c return wbox; wbox 178 src/weak.c int Scm_WeakBoxEmptyP(ScmWeakBox *wbox) wbox 180 src/weak.c return (wbox->registered && wbox->ptr == NULL); wbox 183 src/weak.c void Scm_WeakBoxSet(ScmWeakBox *wbox, void *newvalue) wbox 185 src/weak.c if (wbox->registered) { wbox 186 src/weak.c GC_unregister_disappearing_link((GC_PTR)&wbox->ptr); wbox 187 src/weak.c wbox->registered = FALSE; wbox 189 src/weak.c wbox_setvalue(wbox, newvalue); wbox 192 src/weak.c void *Scm_WeakBoxRef(ScmWeakBox *wbox) wbox 194 src/weak.c return wbox->ptr; /* NB: if NULL is retured, you can't know