Changeset 15856


Ignore:
Timestamp:
Jul 5, 2013, 6:42:50 AM (7 years ago)
Author:
gb
Message:

In the SHARED-INITIALIZE :AFTER method on OBJC-DISPATCH-FUNCTION: if
a protocol method is declared but the protocol doesn't exist in the
runtime, ignore the method.

There may be something smarter that could be done here.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/objc-bridge/bridge.lisp

    r15540 r15856  
    863863                            receiver ,selector args))))
    864864              :name `(:objc-dispatch ,name)))
    865             (let* ((protocol-pairs (mapcar #'(lambda (pm)
    866                                                (cons (lookup-objc-protocol
    867                                                       (objc-method-info-class-name pm))
    868                                                      (objc-method-info-signature-info
    869                                                       pm)))
    870                                            (objc-message-info-protocol-methods message-info)))
     865            (let* ((protocol-pairs (let* ((pp ()))
     866                                     (dolist (pm (objc-message-info-protocol-methods message-info) pp)
     867                                       (let* ((protocol (lookup-objc-protocol
     868                                                      (objc-method-info-class-name pm))))
     869                                         (when protocol
     870                                           (push (cons protocol
     871                                                       (objc-method-info-signature-info
     872                                                      pm))
     873                                                 pp))))))
    871874                   (method-pairs (mapcar #'(lambda (group)
    872875                                             (cons (mapcar #'(lambda (m)
Note: See TracChangeset for help on using the changeset viewer.