1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-23 20:05:32 +02:00

*.[ch]: make a distinction between SCM as a generic

name for a Scheme object (now a void*), and SCM as 32 bit word for
storing tags and immediates (now a long int).  Introduced
SCM_ASWORD and SCM_ASSCM for conversion. Fixed various dubious
code in the process: arbiter.c (use macros), unif.c (scm_array_p),
This commit is contained in:
Greg J. Badros 2000-03-09 18:58:58 +00:00
parent df8bb2dc39
commit c209c88e54
53 changed files with 1371 additions and 1361 deletions

View file

@ -186,7 +186,7 @@ scm_options (SCM arg, scm_option options[], int n, const char *s)
goto cont;
case SCM_OPTION_SCM:
new_mode = SCM_CDR (new_mode);
flags[i] = SCM_CAR (new_mode);
flags[i] = SCM_CARW (new_mode);
goto cont;
}
#ifndef SCM_RECKLESS
@ -198,6 +198,7 @@ scm_options (SCM arg, scm_option options[], int n, const char *s)
}
for (i = 0; i < n; ++i)
{
// scm_option doesn't know if its a long or an SCM
if (options[i].type == SCM_OPTION_SCM)
SCM_SETCDR (protected_objects,
scm_cons (flags[i],