Skip to content

Conversation

@jpobst
Copy link
Contributor

@jpobst jpobst commented Jan 13, 2020

Context: dotnet/java-interop#558.
Companion JI PR: dotnet/java-interop#558.

Create overloads of JNIEnv.NewArray (...) that take unsigned arrays as parameters. This allows users to get a package time error if they are using an older Java.Interop.dll that does not support unsigned types instead of a runtime error.

@jpobst jpobst force-pushed the unsigned-fix branch 2 times, most recently from 9142658 to 4aa9107 Compare January 14, 2020 15:38
@jpobst jpobst force-pushed the unsigned-fix branch 6 times, most recently from 58e7c41 to 721bc8b Compare January 21, 2020 22:08
@jpobst jpobst marked this pull request as ready for review January 22, 2020 14:56
@jpobst jpobst requested a review from jonpryor as a code owner January 22, 2020 14:56
jonpryor pushed a commit to dotnet/java-interop that referenced this pull request Jan 27, 2020
Fixes: #556
Context: dotnet/android#4119

Call new `JNIEnv.NewArray(...)` overloads that explicitly take
unsigned types instead of using the signed counterparts such as
`JNIEnv.NewArray((int[])(object)value`.

This allows users to get a linker time error if they are using an
older Java.Interop.dll that does not support unsigned types, instead
of a runtime error.
jonpryor pushed a commit to dotnet/java-interop that referenced this pull request Jan 27, 2020
Fixes: #556
Context: dotnet/android#4119

Call new `JNIEnv.NewArray(...)` overloads that explicitly take
unsigned types instead of using the signed counterparts such as
`JNIEnv.NewArray((int[])(object)value`.

This allows users to get a linker time error if they are using an
older Java.Interop.dll that does not support unsigned types, instead
of a runtime error.
jonpryor pushed a commit that referenced this pull request Jan 28, 2020
Fixes: dotnet/java-interop#556

Context: dotnet/java-interop@99cf719

Changes: dotnet/java-interop@c0cc770...fc18c54

  * dotnet/java-interop@fc18c54: [generator] Call explicit unsigned NewArray() methods (#558)

`generator` now requires the use of `JNIEnv.NewArray(X[])` where `X`
is an unsigned type -- `uint`, `ushort`, etc. -- in order to support
arrays of Kotlin unsigned types.

This allows users to get an XA2006 package time error if they are
using an older Xamarin.Android that does not support unsigned types,
instead of a runtime error.  We feel that a packaging-time error will
be more reliable and less user-hostile than "random" runtime errors
on downlevel product versions.
@jonpryor jonpryor merged commit 3d30bbd into master Jan 28, 2020
@jpobst jpobst deleted the unsigned-fix branch January 28, 2020 14:57
@github-actions github-actions bot locked and limited conversation to collaborators Jan 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants