From 47604724a48ded98df72dea1300e7c8df508aee4 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Wed, 19 Feb 2025 16:04:33 -0700 Subject: [PATCH] musikr: dont pass JObject ownership 90% sure this causes the JObject to be dropped incorrectly. --- musikr/src/main/jni/src/jstream.rs | 4 ++-- musikr/src/main/jni/src/lib.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/musikr/src/main/jni/src/jstream.rs b/musikr/src/main/jni/src/jstream.rs index 54d9261ff..535c0d9fb 100644 --- a/musikr/src/main/jni/src/jstream.rs +++ b/musikr/src/main/jni/src/jstream.rs @@ -5,11 +5,11 @@ use std::io::SeekFrom; pub struct JInputStream<'local> { env: SharedEnv<'local>, - input: JObject<'local>, + input: &'local JObject<'local>, } impl<'local, 'a> JInputStream<'local> { - pub fn new(env: SharedEnv<'local>, input: JObject<'local>) -> Self { + pub fn new(env: SharedEnv<'local>, input: &'local JObject<'local>) -> Self { Self { env, input } } } diff --git a/musikr/src/main/jni/src/lib.rs b/musikr/src/main/jni/src/lib.rs index d3d489faa..4ea78e946 100644 --- a/musikr/src/main/jni/src/lib.rs +++ b/musikr/src/main/jni/src/lib.rs @@ -61,7 +61,7 @@ pub extern "C" fn Java_org_oxycblt_musikr_metadata_MetadataJNI_openFile<'local>( ) -> jobject { // Create JInputStream from the Java input stream let shared_env = Rc::new(RefCell::new(env)); - let stream = JInputStream::new(shared_env.clone(), input); + let stream = JInputStream::new(shared_env.clone(), &input); let file_ref = FileRef::new(stream); let file = file_ref.file(); let mut jbuilder = JMetadataBuilder::new(shared_env.clone());