mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 23:50:18 +02:00
Add SCM_SET_SUBR_GENERIC ()' to replace
SCM_SUBR_GENERIC ()' as an lvalue.
* libguile/goops.c (scm_c_extend_primitive_generic): Use `SCM_SET_SUBR_GENERIC ()' instead of using `SCM_SUBR_GENERIC ()' as an lvalue. * libguile/procs.c (scm_c_make_subr_with_generic): Use `SCM_SET_SUBR_GENERIC_LOC ()'. * libguile/procs.h (SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC): New macros.
This commit is contained in:
parent
a62fad3a22
commit
499b5dfa3e
3 changed files with 4 additions and 2 deletions
|
@ -1905,7 +1905,7 @@ scm_c_extend_primitive_generic (SCM extended, SCM extension)
|
||||||
gext = scm_call_2 (SCM_VARIABLE_REF (scm_var_make_extended_generic),
|
gext = scm_call_2 (SCM_VARIABLE_REF (scm_var_make_extended_generic),
|
||||||
gf,
|
gf,
|
||||||
SCM_SNAME (extension));
|
SCM_SNAME (extension));
|
||||||
*SCM_SUBR_GENERIC (extension) = gext;
|
SCM_SET_SUBR_GENERIC (extension, gext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,7 +92,7 @@ scm_c_make_subr_with_generic (const char *name,
|
||||||
long type, SCM (*fcn) (), SCM *gf)
|
long type, SCM (*fcn) (), SCM *gf)
|
||||||
{
|
{
|
||||||
SCM subr = scm_c_make_subr (name, type, fcn);
|
SCM subr = scm_c_make_subr (name, type, fcn);
|
||||||
SCM_SUBR_GENERIC (subr) = gf;
|
SCM_SET_SUBR_GENERIC_LOC (subr, gf);
|
||||||
return subr;
|
return subr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,8 @@ typedef struct
|
||||||
#define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))
|
#define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))
|
||||||
#define SCM_SUBR_PROPS(x) (SCM_SUBR_ENTRY (x).properties)
|
#define SCM_SUBR_PROPS(x) (SCM_SUBR_ENTRY (x).properties)
|
||||||
#define SCM_SUBR_GENERIC(x) (SCM_SUBR_ENTRY (x).generic)
|
#define SCM_SUBR_GENERIC(x) (SCM_SUBR_ENTRY (x).generic)
|
||||||
|
#define SCM_SET_SUBR_GENERIC(x, g) (*SCM_SUBR_ENTRY (x).generic = (g))
|
||||||
|
#define SCM_SET_SUBR_GENERIC_LOC(x, g) (SCM_SUBR_ENTRY (x).generic = (g))
|
||||||
|
|
||||||
#define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
|
#define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
|
||||||
#define SCM_MAKE_CCLO_TAG(v) (((v) << 8) + scm_tc7_cclo)
|
#define SCM_MAKE_CCLO_TAG(v) (((v) << 8) + scm_tc7_cclo)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue