summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/frames.c17
-rw-r--r--libguile/objcodes.c7
-rw-r--r--libguile/programs.c11
-rw-r--r--libguile/vm.c96
4 files changed, 1 insertions, 130 deletions
diff --git a/libguile/frames.c b/libguile/frames.c
index 647cb608d..3452caf5c 100644
--- a/libguile/frames.c
+++ b/libguile/frames.c
@@ -79,20 +79,7 @@ vm_frame_print (SCM frame, SCM port, scm_print_state *pstate)
return 1;
}
-static SCM
-vm_frame_mark (SCM obj)
-{
- return SCM_VM_FRAME_STACK_HOLDER (obj);
-}
-
-static scm_sizet
-vm_frame_free (SCM obj)
-{
- struct scm_vm_frame *p = SCM_VM_FRAME_DATA (obj);
- scm_gc_free (p, sizeof(struct scm_vm_frame), "vmframe");
- return 0;
-}
-
+
/* Scheme interface */
SCM_DEFINE (scm_vm_frame_p, "vm-frame?", 1, 0, 0,
@@ -294,8 +281,6 @@ void
scm_bootstrap_frames (void)
{
scm_tc16_vm_frame = scm_make_smob_type ("vm-frame", 0);
- scm_set_smob_mark (scm_tc16_vm_frame, vm_frame_mark);
- scm_set_smob_free (scm_tc16_vm_frame, vm_frame_free);
scm_set_smob_print (scm_tc16_vm_frame, vm_frame_print);
}
diff --git a/libguile/objcodes.c b/libguile/objcodes.c
index 3e30b2d60..231d2f4b1 100644
--- a/libguile/objcodes.c
+++ b/libguile/objcodes.c
@@ -136,12 +136,6 @@ scm_c_make_objcode_slice (SCM parent, scm_t_uint8 *ptr)
}
#undef FUNC_NAME
-static SCM
-objcode_mark (SCM obj)
-{
- return SCM_SMOB_OBJECT_2 (obj);
-}
-
/*
* Scheme interface
@@ -265,7 +259,6 @@ void
scm_bootstrap_objcodes (void)
{
scm_tc16_objcode = scm_make_smob_type ("objcode", 0);
- scm_set_smob_mark (scm_tc16_objcode, objcode_mark);
}
/* Before, we used __BYTE_ORDER, but that is not defined on all
diff --git a/libguile/programs.c b/libguile/programs.c
index 1d6318c6c..1fcfc54c8 100644
--- a/libguile/programs.c
+++ b/libguile/programs.c
@@ -83,16 +83,6 @@ SCM_DEFINE (scm_make_program, "make-program", 1, 2, 0,
#undef FUNC_NAME
static SCM
-program_mark (SCM obj)
-{
- if (scm_is_true (SCM_PROGRAM_OBJTABLE (obj)))
- scm_gc_mark (SCM_PROGRAM_OBJTABLE (obj));
- if (!scm_is_null (SCM_PROGRAM_EXTERNALS (obj)))
- scm_gc_mark (SCM_PROGRAM_EXTERNALS (obj));
- return SCM_PROGRAM_OBJCODE (obj);
-}
-
-static SCM
program_apply (SCM program, SCM args)
{
return scm_vm_apply (scm_the_vm (), program, args);
@@ -362,7 +352,6 @@ void
scm_bootstrap_programs (void)
{
scm_tc16_program = scm_make_smob_type ("program", 0);
- scm_set_smob_mark (scm_tc16_program, program_mark);
scm_set_smob_apply (scm_tc16_program, program_apply, 0, 0, 1);
scm_smobs[SCM_TC2SMOBNUM (scm_tc16_program)].apply_0 = program_apply_0;
scm_smobs[SCM_TC2SMOBNUM (scm_tc16_program)].apply_1 = program_apply_1;
diff --git a/libguile/vm.c b/libguile/vm.c
index 0646becdb..e132c8eda 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -84,62 +84,6 @@
scm_t_bits scm_tc16_vm_cont;
-static void
-vm_mark_stack (SCM *base, scm_t_ptrdiff size, SCM *fp, scm_t_ptrdiff reloc)
-{
- SCM *sp, *upper, *lower;
- sp = base + size - 1;
-
- while (sp > base && fp)
- {
- upper = SCM_FRAME_UPPER_ADDRESS (fp);
- lower = SCM_FRAME_LOWER_ADDRESS (fp);
-
- for (; sp >= upper; sp--)
- if (SCM_NIMP (*sp))
- {
- if (scm_in_heap_p (*sp))
- scm_gc_mark (*sp);
- else
- fprintf (stderr, "BADNESS: crap on the stack: %p\n", *sp);
- }
-
-
- /* skip ra, mvra */
- sp -= 2;
-
- /* update fp from the dynamic link */
- fp = (SCM*)*sp-- + reloc;
-
- /* mark from the el down to the lower address */
- for (; sp >= lower; sp--)
- if (*sp && SCM_NIMP (*sp))
- scm_gc_mark (*sp);
- }
-}
-
-static SCM
-vm_cont_mark (SCM obj)
-{
- struct scm_vm_cont *p = SCM_VM_CONT_DATA (obj);
-
- if (p->stack_size)
- vm_mark_stack (p->stack_base, p->stack_size, p->fp + p->reloc, p->reloc);
-
- return SCM_BOOL_F;
-}
-
-static scm_sizet
-vm_cont_free (SCM obj)
-{
- struct scm_vm_cont *p = SCM_VM_CONT_DATA (obj);
-
- scm_gc_free (p->stack_base, p->stack_size * sizeof (SCM), "stack-base");
- scm_gc_free (p, sizeof (struct scm_vm), "vm");
-
- return 0;
-}
-
static SCM
capture_vm_cont (struct scm_vm *vp)
{
@@ -344,42 +288,6 @@ make_vm (void)
}
#undef FUNC_NAME
-static SCM
-vm_mark (SCM obj)
-{
- int i;
- struct scm_vm *vp = SCM_VM_DATA (obj);
-
-#ifdef VM_ENABLE_STACK_NULLING
- if (vp->sp >= vp->stack_base)
- if (!vp->sp[0] || vp->sp[1])
- abort ();
-#endif
-
- /* mark the stack, precisely */
- vm_mark_stack (vp->stack_base, vp->sp + 1 - vp->stack_base, vp->fp, 0);
-
- /* mark other objects */
- for (i = 0; i < SCM_VM_NUM_HOOKS; i++)
- scm_gc_mark (vp->hooks[i]);
-
- scm_gc_mark (vp->trace_frame);
-
- return vp->options;
-}
-
-static scm_sizet
-vm_free (SCM obj)
-{
- struct scm_vm *vp = SCM_VM_DATA (obj);
-
- scm_gc_free (vp->stack_base, vp->stack_size * sizeof (SCM),
- "stack-base");
- scm_gc_free (vp, sizeof (struct scm_vm), "vm");
-
- return 0;
-}
-
SCM
scm_c_vm_run (SCM vm, SCM program, SCM *argv, int nargs)
{
@@ -646,12 +554,8 @@ scm_bootstrap_vm (void)
scm_bootstrap_programs ();
scm_tc16_vm_cont = scm_make_smob_type ("vm-cont", 0);
- scm_set_smob_mark (scm_tc16_vm_cont, vm_cont_mark);
- scm_set_smob_free (scm_tc16_vm_cont, vm_cont_free);
scm_tc16_vm = scm_make_smob_type ("vm", 0);
- scm_set_smob_mark (scm_tc16_vm, vm_mark);
- scm_set_smob_free (scm_tc16_vm, vm_free);
scm_set_smob_apply (scm_tc16_vm, scm_vm_apply, 1, 0, 1);
scm_c_define ("load-compiled",