1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-05 03:30:24 +02:00

SCM_GENERIC_METHOD_CACHE macro splits from SCM_ENTITY_PROCEDURE

* libguile/goops.h (SCM_GENERIC_METHOD_CACHE)
  (SCM_SET_GENERIC_METHOD_CACHE): Two new macros; the same as
  SCM_[SET_]ENTITY_PROCEDURE, but more reflecting the reality of the
  generic hack.

* libguile/eval.i.c:
* libguile/goops.c:
* libguile/objects.c:
* libguile/vm-i-system.c: Use the new macros when it is appropriate to
  do so.
This commit is contained in:
Andy Wingo 2009-10-31 12:04:53 +01:00
parent 48c7c44e70
commit 521ac49bde
5 changed files with 13 additions and 12 deletions

View file

@ -163,7 +163,7 @@ scm_mcache_compute_cmethod (SCM cache, SCM args)
SCM
scm_apply_generic (SCM gf, SCM args)
{
SCM cmethod = scm_mcache_compute_cmethod (SCM_ENTITY_PROCEDURE (gf), args);
SCM cmethod = scm_mcache_compute_cmethod (SCM_GENERIC_METHOD_CACHE (gf), args);
if (SCM_PROGRAM_P (cmethod))
return scm_vm_apply (scm_the_vm (), cmethod, args);
else if (scm_is_pair (cmethod))
@ -247,8 +247,7 @@ SCM_DEFINE (scm_set_object_procedure_x, "set-object-procedure!", 2, 0, 0,
obj,
SCM_ARG1,
FUNC_NAME);
SCM_ASSERT (scm_valid_object_procedure_p (proc), proc, SCM_ARG2, FUNC_NAME);
SCM_SET_ENTITY_PROCEDURE (obj, proc);
SCM_SET_ENTITY_PROCEDURE (obj, proc);
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME