summaryrefslogtreecommitdiff
path: root/libguile/pairs.h
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/pairs.h')
-rw-r--r--libguile/pairs.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/libguile/pairs.h b/libguile/pairs.h
index 07637b4b9..96e6f42cc 100644
--- a/libguile/pairs.h
+++ b/libguile/pairs.h
@@ -104,17 +104,17 @@ typedef SCM huge *SCMPTR;
#define SCM_CAR(x) (((scm_cell *)(SCM2PTR(x)))->car)
#define SCM_CDR(x) (((scm_cell *)(SCM2PTR(x)))->cdr)
-#define SCM_GCCDR(x) (~1L & SCM_CDR(x))
-#define SCM_SETCAR(x, v) (SCM_CAR(x) = (SCM)(v))
-#define SCM_SETCDR(x, v) (SCM_CDR(x) = (SCM)(v))
+#define SCM_GCCDR(x) SCM_ASSCM(~1L & SCM_ASWORD (SCM_CDR(x)))
+#define SCM_SETCAR(x, v) (SCM_CAR(x) = SCM_ASSCM(v))
+#define SCM_SETCDR(x, v) (SCM_CDR(x) = SCM_ASSCM(v))
#define SCM_CARLOC(x) (&SCM_CAR (x))
#define SCM_CDRLOC(x) (&SCM_CDR (x))
-#define SCM_SETAND_CAR(x, y) (SCM_CAR (x) &= (y))
-#define SCM_SETAND_CDR(x, y) (SCM_CDR (x) &= (y))
-#define SCM_SETOR_CAR(x, y) (SCM_CAR (x) |= (y))
-#define SCM_SETOR_CDR(x, y) (SCM_CDR (x) |= (y))
+#define SCM_SETAND_CAR(x, y) (SCM_CARW (x) &= (y))
+#define SCM_SETAND_CDR(x, y) (SCM_ASWORD (SCM_CDR (x)) &= (y))
+#define SCM_SETOR_CAR(x, y) (SCM_CARW (x) |= (y))
+#define SCM_SETOR_CDR(x, y) (SCM_ASWORD (SCM_CDR (x)) |= (y))
#define SCM_CAAR(OBJ) SCM_CAR (SCM_CAR (OBJ))
#define SCM_CDAR(OBJ) SCM_CDR (SCM_CAR (OBJ))