All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
JNI_VERSION_9
,JNI_VERSION_10
,JNI_VERSION_19
,JNI_VERSION_20
andJNI_VERSION_21
constants - Added
GetModule()
toJNINativeInterface
(#22) IsVirtualThread()
toJNINativeInterface
(#32)- Implemented
Debug
trait for all types (#31) - Added support for
no_std
environments (#12)
-
jboolean
is now an alias forbool
instead ofu8
(#23) -
The
JNIInvokeInterface_
andJNINativeInterface_
structs were turned into unions that namespace functions by version (#28):This makes it much clearer what version of JNI you require to access any function safely.
So instead of a struct like:
struct JNINativeInterface_ { pub reserved0: *mut c_void, .. pub GetVersion: unsafe extern "system" fn(env: *mut JNIEnv) -> jint, .. pub NewLocalRef: unsafe extern "system" fn(env: *mut JNIEnv, ref_: jobject) -> jobject, }
there is now a union like:
union JNINativeInterface_ { v1_1: JNINativeInterface__1_1, v1_2: JNINativeInterface__1_2, reserved: JNINativeInterface__reserved, }
And you can access
GetVersion
like:env.v1_1.GetVersion
and accessNewLocalRef
like:env.v1_2.NewLocalRef
.Each version struct includes all functions for that version and lower, so it's also possible to access
GetVersion
likeenv.v1_2.GetVersion
. -
Function pointers are no longer wrapped in an
Option<>
(#25)
0.3.0 - 2017-07-20
- Changed jvalue into a union