pub struct AutoLocal<'a, 'b>where
'a: 'b,{ /* private fields */ }
Expand description
Auto-delete wrapper for local refs.
Anything passed to a foreign method and returned from JNI methods is considered a local ref unless it is specified otherwise. These refs are automatically deleted once the foreign method exits, but it’s possible that they may reach the JVM-imposed limit before that happens.
This wrapper provides automatic local ref deletion when it goes out of scope.
NOTE: This comes with some potential safety risks. DO NOT use this to wrap something unless you’re SURE it won’t be used after this wrapper gets dropped. Otherwise, you’ll get a nasty JVM crash.
See also the JNI specification for details on referencing Java objects and some extra information.
Implementations§
Source§impl<'a, 'b> AutoLocal<'a, 'b>
impl<'a, 'b> AutoLocal<'a, 'b>
Sourcepub fn new(env: &'b JNIEnv<'a>, obj: JObject<'a>) -> AutoLocal<'a, 'b>
pub fn new(env: &'b JNIEnv<'a>, obj: JObject<'a>) -> AutoLocal<'a, 'b>
Creates a new auto-delete wrapper for a local ref.
Once this wrapper goes out of scope, the delete_local_ref
will be
called on the object. While wrapped, the object can be accessed via
the Deref
impl.
Trait Implementations§
Source§impl<'a, 'b, 'c> Desc<'a, JClass<'b>> for &'b AutoLocal<'c, '_>where
'c: 'b,
This conversion assumes that the AutoLocal
is a pointer to a class object.
impl<'a, 'b, 'c> Desc<'a, JClass<'b>> for &'b AutoLocal<'c, '_>where
'c: 'b,
This conversion assumes that the AutoLocal
is a pointer to a class object.