From 81a045184947a6e6e683cba14ebc64b51ea84fb9 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 7 Mar 2013 19:52:52 -0700 Subject: [PATCH] ffi/unsafe/objc Avoid crash on duplicate Objective-C class declaration. --- collects/ffi/unsafe/objc.rkt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/collects/ffi/unsafe/objc.rkt b/collects/ffi/unsafe/objc.rkt index 8eb3fd0295..9ab73e283f 100644 --- a/collects/ffi/unsafe/objc.rkt +++ b/collects/ffi/unsafe/objc.rkt @@ -604,14 +604,15 @@ (begin (define superclass-id superclass) (define id (allocate-class-pair superclass-id id-str)) - (void (add-protocol id proto)) ... - (add-ivar id 'ivar) ... - (let-syntax ([ivar (make-ivar-form 'ivar)] ...) - (add-method whole-stx id superclass-id method) ... - (mixin id superclass-id '(ivar ...)) ... - (add-method whole-stx id superclass-id dealloc-method) ... - (void)) - (register-class-pair id))))))] + (when id + (void (add-protocol id proto)) ... + (add-ivar id 'ivar) ... + (let-syntax ([ivar (make-ivar-form 'ivar)] ...) + (add-method whole-stx id superclass-id method) ... + (mixin id superclass-id '(ivar ...)) ... + (add-method whole-stx id superclass-id dealloc-method) ... + (void)) + (register-class-pair id)))))))] [(_ id superclass (ivar ...) method ...) #'(define-objc-class id superclass #:mixins () #:protocols () (ivar ...) method ...)] [(_ id superclass #:mixins (mixin ...) (ivar ...) method ...)