mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-19 18:20:22 +02:00
deprecate lookup closures
* libguile/deprecated.h (SCM_TOP_LEVEL_LOOKUP_CLOSURE): * libguile/deprecated.c (scm_lookup_closure_module): (scm_module_lookup_closure): (scm_current_module_lookup_closure): Deprecate this part of the eval closure interface. It was unused internally, after the scm_sym2var refactor. * libguile/eval.h: * libguile/modules.c: * libguile/modules.h: Remove deprecated code. * libguile/goops.c (scm_ensure_accessor): Use scm_module_variable instead of calling the lookup closure. However I'm not sure that this code is used at all.
This commit is contained in:
parent
62e15979b5
commit
3f48638c8c
6 changed files with 70 additions and 60 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2008,2009,2010,2011
|
||||
/* Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2008,2009,2010,2011,2012
|
||||
* Free Software Foundation, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
@ -2765,13 +2765,21 @@ SCM_KEYWORD (k_getter, "getter");
|
|||
SCM
|
||||
scm_ensure_accessor (SCM name)
|
||||
{
|
||||
SCM gf = scm_call_2 (SCM_TOP_LEVEL_LOOKUP_CLOSURE, name, SCM_BOOL_F);
|
||||
SCM var, gf;
|
||||
|
||||
var = scm_module_variable (scm_current_module (), name);
|
||||
if (SCM_VARIABLEP (var) && !SCM_UNBNDP (SCM_VARIABLE_REF (var)))
|
||||
gf = SCM_VARIABLE_REF (var);
|
||||
else
|
||||
gf = SCM_BOOL_F;
|
||||
|
||||
if (!SCM_IS_A_P (gf, scm_class_accessor))
|
||||
{
|
||||
gf = scm_make (scm_list_3 (scm_class_generic, k_name, name));
|
||||
gf = scm_make (scm_list_5 (scm_class_accessor,
|
||||
k_name, name, k_setter, gf));
|
||||
}
|
||||
|
||||
return gf;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue