From 8f9da2f9e923129179278fdb400b2662b9c8c462 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Wed, 22 Mar 2000 02:12:47 +0000 Subject: [PATCH] * tags.h (SCM_ECONSP, SCM_NECONSP): More corrections of pointer-arithmetic induced by the SCM_PACK/UNPACK change. --- libguile/tags.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libguile/tags.h b/libguile/tags.h index 92891c032..8eb8c0684 100644 --- a/libguile/tags.h +++ b/libguile/tags.h @@ -291,14 +291,18 @@ typedef void * SCM; /* SCM_ECONSP should be used instead of SCM_CONSP at places where GLOCS * can be expected to occur. */ -#define SCM_ECONSP(x) (SCM_NIMP (x) \ - && (SCM_SLOPPY_CONSP (x) \ - || (SCM_TYP3 (x) == 1 \ - && SCM_CDR (SCM_CAR (x) - 1) != 0))) -#define SCM_NECONSP(x) (SCM_IMP (x) \ - || (SCM_SLOPPY_NCONSP (x) \ - && (SCM_TYP3 (x) != 1 \ - || SCM_CDR (SCM_CAR (x) - 1) == 0))) +#define SCM_ECONSP(x) \ + (SCM_NIMP (x) \ + && (SCM_SLOPPY_CONSP (x) \ + || (SCM_TYP3 (x) == 1 \ + && (SCM_CDR ((SCM) SCM_STRUCT_VTABLE_DATA (x)) \ + != (SCM) 0)))) +#define SCM_NECONSP(x) \ + (SCM_IMP (x) \ + || (SCM_SLOPPY_NCONSP (x) \ + && (SCM_TYP3 (x) != 1 \ + || (SCM_CDR ((SCM) SCM_STRUCT_VTABLE_DATA (x)) \ + == (SCM) 0))))