{"push_id":672283868,"size":1,"distinct_size":1,"ref":"refs/heads/fix-arm64-invocation","head":"3e01bf7d7fb01107a857dca11a21f6716cd1b745","before":"0eb8f9f864db5f24e9ace24a1e191b7d834cddc7","commits":[{"sha":"3e01bf7d7fb01107a857dca11a21f6716cd1b745","author":{"email":"cc7c5be316e48d137cbb549833b85d91034d799d@kivy.org","name":"Mathieu Virbel"},"message":"fix ARM64 delegate\n\nSince ARM64 introduction (iOS 8), delegate implementation are using the\n\"slow\" path of objective-c.\nWe are not able anymore to declare a variadic function for responding\nto any\nkind of selector, as the ARM64 convention call differ from other\nplatform,\nand va_start/arg/end doesn't work on ARM64 as well.\n\nInstead, we are manually using forwardInvocation:, named as the \"slow\"\npath.\nRef: http://arigrant.com/blog/2013/12/13/a-selector-left-unhandled\n\nThe idea is, when there is no implementation of a selector on the\ntarget,\nobjc will forward the call to a forwardInvocation: selector on the\ntarget,\ncontaining the original invocation and parameters in a NSInvocation.\nFor pyobjus, it's separated in 3 steps:\n- respondsToSelector: > the target class must indicate which selector is\n                        implemented in Python\n- methodSignatureForSelector: > the target class must return a\n                                NSMethodSignature for the selector\n- forwardInvocation: > and then, the message will be passed to it","distinct":true,"url":"https://api.github.com/repos/kivy/pyobjus/commits/3e01bf7d7fb01107a857dca11a21f6716cd1b745"}]}