diff --git a/collects/ffi/unsafe/objc.rkt b/collects/ffi/unsafe/objc.rkt index d299fbfd3f..3031bdbd7e 100644 --- a/collects/ffi/unsafe/objc.rkt +++ b/collects/ffi/unsafe/objc.rkt @@ -188,7 +188,8 @@ (define-objc objc_addClass (_fun _objc_class-pointer -> _void) #:fail (lambda () #f)) -(define-objc object_getClass (_fun _id -> _Class)) +(define-objc object_getClass (_fun _id -> _Class) + #:fail (lambda () #f)) (provide class_addMethod) (define (class_addMethod cls sel imp ty enc) @@ -207,7 +208,11 @@ #:fail (lambda () #f)) (define-objc/private objc_msgSend _fpointer) -(define-objc/private objc_msgSend_fpret _fpointer) +(define-objc/private objc_msgSend_fpret _fpointer + #:fail (lambda () + ;; If objc_msgSend_fpret is not available, assume that + ;; it's the same as objc_msgSend + objc_msgSend)) (define-objc/private objc_msgSend_stret _fpointer) (define-objc/private objc_msgSendSuper _fpointer) (define objc_msgSendSuper_fpret objc_msgSendSuper) ; why no fpret variant? @@ -631,6 +636,11 @@ (class_addProtocol id proto) (add-protocol-the-hard-way id proto))) +(define (object-get-class id) + (if object_getClass + (object_getClass id) + (ptr-ref id _Class))) + (define (layout->string l) (case l [(uint8) "C"] @@ -730,7 +740,7 @@ [_ (error "oops")]) '())] [in-cls (if in-class? - #'(object_getClass cls) + #'(object-get-class cls) #'cls)] [atomic? (or (free-identifier=? #'kind #'+a) (free-identifier=? #'kind #'-a))]) @@ -807,4 +817,4 @@ (provide objc-is-a?) (define (objc-is-a? v c) - (ptr-equal? (object_getClass v) c)) + (ptr-equal? (object-get-class v) c)) diff --git a/src/gracket/get-libs.rkt b/src/gracket/get-libs.rkt index 79a58b21a0..02323b728c 100644 --- a/src/gracket/get-libs.rkt +++ b/src/gracket/get-libs.rkt @@ -56,7 +56,9 @@ ["libpixman-1.0.dylib" 499440] ["libgthread-2.0.0.dylib" 21728] ["libpng14.14.dylib" 192224] - ["PSMTabBarControl.tgz" 107171])])] + ["PSMTabBarControl.tgz" 107171])] + [(ppc-macosx) + '()])] [(windows) (let ([basic '(["libjpeg-7.dll" 233192] ["libcairo-2.dll" 921369] diff --git a/src/mac/install-libs.rkt b/src/mac/install-libs.rkt index 3e7583b7db..a491f4c7d6 100644 --- a/src/mac/install-libs.rkt +++ b/src/mac/install-libs.rkt @@ -1,5 +1,5 @@ -#lang scheme -(require scheme/system) +#lang racket +(require racket/system) (define from (vector-ref (current-command-line-arguments) 0)) (define to (path->string (simplify-path (build-path (collection-path "scheme") 'up 'up "lib/") #f)))