diff options
author | Andy Wingo <wingo@pobox.com> | 2012-05-23 12:38:56 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-05-23 12:38:56 +0200 |
commit | 747747ee06ac64c224b91e8f64f810a1159c1675 (patch) | |
tree | dcbbde402e06dc2ae70d036c6d474c43c87b031e /libguile/goops.c | |
parent | 4df52c924dad7c7450dea61186b0820b5da844d1 (diff) | |
parent | 2de74cb56e3af44ce624638facfa061603d39c0d (diff) | |
download | guile-747747ee06ac64c224b91e8f64f810a1159c1675.tar.gz |
Merge remote-tracking branch 'origin/stable-2.0'
This commit removes code that was newly deprecated in stable-2.0.
Conflicts:
libguile/deprecated.c
libguile/deprecated.h
libguile/modules.c
module/ice-9/boot-9.scm
module/ice-9/deprecated.scm
Diffstat (limited to 'libguile/goops.c')
-rw-r--r-- | libguile/goops.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libguile/goops.c b/libguile/goops.c index 5e846eeae..355e5efa4 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -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 @@ -2750,13 +2750,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; } |