Xamarin-macios: CTRunDelegate incorrectly uses float instead of nfloat

Created on 15 Nov 2018  路  6Comments  路  Source: xamarin/xamarin-macios

See: https://github.com/xamarin/xamarin-macios/pull/5131

The binding is not 64-bit safe, we missed it in audit.

bug macOS

Most helpful comment

Fair breaking change IMHO (:

All 6 comments

Fair breaking change IMHO (:

It's possible to fix this without doing a breaking - in any case this whole binding file can be significantly improved.

A few things to note if these bindings are supposed to be high performance and really good codegen:

  • Reflection here should be removed

Agreed.

  • Virtual methods might not be able to be devirtualized

We have a linker step that is able to devirtualize virtual methods.

The native-to-managed transition will completely overshadow any inlining benefits (and how does even inlining come into play when the method is called from native code?)

The named-to-managed transition behaviour implemented via a pinvoke wrapper generated that calls the JITed managed method, right? That would be an extra call per pinvoke.

I don't see why a breaking change would be needed - we control the managed API and there's code in between (us and native) where the conversion can be hidden.

It's extra work so we can have it fixed _properly_ under XAMCORE_4_0

Was this page helpful?
0 / 5 - 0 ratings

Related issues

juepiezhongren picture juepiezhongren  路  3Comments

rolfbjarne picture rolfbjarne  路  4Comments

Mikilll94 picture Mikilll94  路  4Comments

jzeferino picture jzeferino  路  3Comments

mandel-macaque picture mandel-macaque  路  3Comments