~ chicken-core (chicken-5) 683335b617016f4c87da82315f57fe8bbed41a1a


commit 683335b617016f4c87da82315f57fe8bbed41a1a
Author:     Kristian Lein-Mathisen <kristianlein@gmail.com>
AuthorDate: Sat May 25 16:58:04 2013 +0200
Commit:     Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Wed May 29 21:42:31 2013 +0200

    Adds argument-type check on getter-with-setter
    
    ===== before:
    
    $ csi -p '(getter-with-setter (void) (void))'
    Segmentation fault (core dumped)
    
    ===== after:
    
    $ csi -p '(getter-with-setter (void) (void))'
    Error: (getter-with-setter) bad argument type - not a procedure: #<unspecified>
    
            Call history:
    
            <syntax>          (getter-with-setter (void) (void))
            <syntax>          (void)
            <syntax>          (void)
            <eval>    (getter-with-setter (void) (void))
            <eval>    (void)
            <eval>    (void)        <--
    
    Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
    Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>

diff --git a/library.scm b/library.scm
index 68165d9e..7b967c63 100644
--- a/library.scm
+++ b/library.scm
@@ -2236,6 +2236,8 @@ EOF
 (define setter ##sys#setter)
 
 (define (getter-with-setter get set #!optional info)
+  (##sys#check-closure get 'getter-with-setter)
+  (##sys#check-closure set 'getter-with-setter)
   (let ((getdec (cond (info
 		       (##sys#check-string info 'getter-with-setter)
 		       (##sys#make-lambda-info info))
Trap