wingo pushed a commit to branch master
in repository guile.
commit 984d43b632597e02909843398aacc1f02d501bc5
Author: Andy Wingo <[email protected]>
Date: Tue Jan 6 14:54:44 2015 -0500
Remove scm_assert_bound
* libguile/goops.c (scm_assert_bound): Remove unexported unused helper.
* module/oop/goops.scm (make-generic-bound-check-getter): Change
assert-bound use to use `unbound?'.
---
libguile/goops.c | 13 -------------
module/oop/goops.scm | 6 +++++-
2 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/libguile/goops.c b/libguile/goops.c
index cb33217..ab244ed 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -175,7 +175,6 @@ SCM scm_i_smob_class[SCM_I_MAX_SMOB_TYPE_COUNT];
static SCM scm_make_unbound (void);
static SCM scm_unbound_p (SCM obj);
-static SCM scm_assert_bound (SCM value, SCM obj);
static SCM scm_sys_bless_applicable_struct_vtables_x (SCM applicable,
SCM setter);
static SCM scm_sys_bless_pure_generic_vtable_x (SCM vtable);
@@ -717,18 +716,6 @@ SCM_DEFINE (scm_unbound_p, "unbound?", 1, 0, 0,
}
#undef FUNC_NAME
-SCM_DEFINE (scm_assert_bound, "assert-bound", 2, 0, 0,
- (SCM value, SCM obj),
- "Return @var{value} if it is bound, and invoke the\n"
- "@var{slot-unbound} method of @var{obj} if it is not.")
-#define FUNC_NAME s_scm_assert_bound
-{
- if (SCM_GOOPS_UNBOUNDP (value))
- return scm_call_1 (SCM_VARIABLE_REF (var_slot_unbound), obj);
- return value;
-}
-#undef FUNC_NAME
-
/** Utilities **/
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index 70edcfe..5068d14 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -1950,7 +1950,11 @@
#:slot-definition slotdef)))
(define (make-generic-bound-check-getter proc)
- (lambda (o) (assert-bound (proc o) o)))
+ (lambda (o)
+ (let ((val (proc o)))
+ (if (unbound? val)
+ (slot-unbound o)
+ val))))
;;; Pre-generate getters and setters for the first 20 slots.
(define-syntax define-standard-accessor-method