summaryrefslogtreecommitdiff
path: root/libguile/gc.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2001-03-30 15:03:23 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2001-03-30 15:03:23 +0000
commit22a52da14dd86801cc3a36837601929effde1904 (patch)
tree3742d5d516018e6fcf53ace4d6f68762e285891c /libguile/gc.c
parent8715ff170378801396575750c54f32fba3a0b624 (diff)
downloadguile-22a52da14dd86801cc3a36837601929effde1904.tar.gz
* Replaced a lot of calls to SCM_C[AD]R with more appropriate macros.
* Minor cleanups to hashtable implementation. * Minor code beautifications.
Diffstat (limited to 'libguile/gc.c')
-rw-r--r--libguile/gc.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index ebcddca09..a4336789f 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1183,8 +1183,8 @@ gc_mark_loop_first_time:
ptr = SCM_CDR (ptr);
goto gc_mark_loop;
case scm_tc7_pws:
- RECURSE (SCM_CELL_OBJECT_2 (ptr));
- ptr = SCM_CDR (ptr);
+ RECURSE (SCM_SETTER (ptr));
+ ptr = SCM_PROCEDURE (ptr);
goto gc_mark_loop;
case scm_tcs_cons_gloc:
{
@@ -1241,13 +1241,13 @@ gc_mark_loop_first_time:
}
break;
case scm_tcs_closures:
- if (SCM_IMP (SCM_CDR (ptr)))
+ if (SCM_IMP (SCM_ENV (ptr)))
{
ptr = SCM_CLOSCAR (ptr);
goto gc_mark_nimp;
}
RECURSE (SCM_CLOSCAR (ptr));
- ptr = SCM_CDR (ptr);
+ ptr = SCM_ENV (ptr);
goto gc_mark_nimp;
case scm_tc7_vector:
i = SCM_VECTOR_LENGTH (ptr);
@@ -1541,8 +1541,8 @@ gc_sweep_freelist_finish (scm_freelist_t *freelist)
if (!SCM_NULLP (freelist->cells))
{
SCM c = freelist->cells;
- SCM_SETCAR (c, SCM_CDR (c));
- SCM_SETCDR (c, SCM_EOL);
+ SCM_SET_CELL_WORD_0 (c, SCM_FREE_CELL_CDR (c));
+ SCM_SET_CELL_WORD_1 (c, SCM_EOL);
freelist->collected +=
freelist->span * (freelist->cluster_size - freelist->left_to_collect);
}
@@ -1733,7 +1733,7 @@ scm_gc_sweep ()
SCM_SETSTREAM (scmptr, 0);
scm_remove_from_port_table (scmptr);
scm_gc_ports_collected++;
- SCM_SETAND_CAR (scmptr, ~SCM_OPN);
+ SCM_CLR_PORT_OPEN_FLAG (scmptr);
}
break;
case scm_tc7_smob:
@@ -1770,7 +1770,7 @@ scm_gc_sweep ()
if (!--left_to_collect)
{
- SCM_SETCAR (scmptr, nfreelist);
+ SCM_SET_CELL_WORD_0 (scmptr, nfreelist);
*freelist->clustertail = scmptr;
freelist->clustertail = SCM_CDRLOC (scmptr);
@@ -2130,7 +2130,7 @@ init_heap_seg (SCM_CELLPTR seg_org, scm_sizet size, scm_freelist_t *freelist)
}
SCM_SET_CELL_TYPE (scmptr, scm_tc_free_cell);
- SCM_SETCDR (scmptr, PTR2SCM (nxt));
+ SCM_SET_FREE_CELL_CDR (scmptr, PTR2SCM (nxt));
ptr = nxt;
}
@@ -2463,7 +2463,7 @@ scm_unprotect_object (SCM obj)
handle = scm_hashq_get_handle (scm_protects, obj);
- if (SCM_IMP (handle))
+ if (SCM_FALSEP (handle))
{
fprintf (stderr, "scm_unprotect_object called on unprotected object\n");
abort ();