1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-13 17:20:21 +02:00

* goops.c (scm_sys_pre_expand_closure_x): New procedure.

This commit is contained in:
Mikael Djurfeldt 2001-03-04 05:27:41 +00:00
parent d19b0aac73
commit 87e7741df7
3 changed files with 25 additions and 3 deletions

View file

@ -1,3 +1,7 @@
2001-03-04 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
* goops.c (scm_sys_pre_expand_closure_x): New procedure.
2001-03-04 Marius Vollmer <mvo@zagadka.ping.de>
* eval.c (scm_s_duplicate_bindings): New error message.

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -934,6 +934,23 @@ SCM_DEFINE (scm_accessor_method_slot_definition, "accessor-method-slot-definitio
}
#undef FUNC_NAME
SCM_DEFINE (scm_sys_pre_expand_closure_x, "%pre-expand-closure!", 1, 0, 0,
(SCM closure),
"Internal GOOPS magic---don't use this function!")
#define FUNC_NAME s_scm_sys_pre_expand_closure_x
{
SCM formals, code, env;
SCM_VALIDATE_CLOSURE (1, closure);
formals = SCM_CAR (SCM_CODE (closure));
env = SCM_EXTEND_ENV (formals, formals, SCM_ENV (closure));
code = SCM_CDR (SCM_CODE (closure));
while (SCM_NNULLP (SCM_CDR (code))
&& SCM_IMP (SCM_CAR (code))
&& SCM_ISYMP (SCM_CAR (code)))
code = scm_m_expand_body (code, env);
return closure;
}
#undef FUNC_NAME
/******************************************************************************
*

View file

@ -2,7 +2,7 @@
#ifndef GOOPSH
#define GOOPSH
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -258,6 +258,7 @@ SCM scm_method_generic_function (SCM obj);
SCM scm_method_specializers (SCM obj);
SCM scm_method_procedure (SCM obj);
SCM scm_accessor_method_slot_definition (SCM obj);
SCM scm_sys_pre_expand_closure_x (SCM closure);
SCM scm_sys_fast_slot_ref (SCM obj, SCM index);
SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value);
SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name);