From bbb9b413d958c1b4f8ecc6c768079e526c7328e9 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Wed, 8 Nov 2017 09:48:52 +0100 Subject: [PATCH] Streamline the behaviour of set-procedure-data! Make it return a ##core#undefined value like the other set! procedures. The entry in types.db already has the correct return type. Signed-off-by: felix --- lolevel.scm | 13 ++++--------- tests/lolevel-tests.scm | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lolevel.scm b/lolevel.scm index d148349..f88b654 100644 --- a/lolevel.scm +++ b/lolevel.scm @@ -461,15 +461,10 @@ EOF (and-let* ([d (%procedure-data x)]) (##sys#slot d 1) ) ) ) -(define set-procedure-data! - (lambda (proc x) - (let ((p2 (extend-procedure proc x))) - (if (eq? p2 proc) - proc - (##sys#signal-hook - #:type-error 'set-procedure-data! - "bad argument type - not an extended procedure" proc) ) ) ) ) - +(define (set-procedure-data! proc x) + (unless (eq? proc (extend-procedure proc x)) + (##sys#signal-hook #:type-error 'set-procedure-data! + "bad argument type - not an extended procedure" proc))) ;;; Accessors for arbitrary vector-like block objects: diff --git a/tests/lolevel-tests.scm b/tests/lolevel-tests.scm index bb6c299..332102a 100644 --- a/tests/lolevel-tests.scm +++ b/tests/lolevel-tests.scm @@ -225,7 +225,7 @@ (define unique-proc-data-2 '(23 'skidoo)) -(assert (eq? foo (set-procedure-data! foo unique-proc-data-2))) +(set-procedure-data! foo unique-proc-data-2) (assert (eq? unique-proc-data-2 (procedure-data foo))) -- 1.7.9.5