diff --git a/basis/cocoa/messages/messages.factor b/basis/cocoa/messages/messages.factor index f71b9f3f56..65bb2c02ef 100644 --- a/basis/cocoa/messages/messages.factor +++ b/basis/cocoa/messages/messages.factor @@ -22,15 +22,13 @@ SYMBOL: super-message-senders message-senders [ H{ } clone ] initialize super-message-senders [ H{ } clone ] initialize -: cache-stub ( method function hash -- ) - [ - over get [ 2drop ] [ over [ sender-stub ] dip set ] if - ] bind ; +: cache-stub ( method assoc function -- ) + '[ _ sender-stub ] cache drop ; : cache-stubs ( method -- ) - dup - "objc_msgSendSuper" super-message-senders get cache-stub - "objc_msgSend" message-senders get cache-stub ; + [ super-message-senders get "objc_msgSendSuper" cache-stub ] + [ message-senders get "objc_msgSend" cache-stub ] + bi ; : ( receiver -- super ) "objc-super" [