From fb8133dd37b3e6e47666aff65c601c2eaed1845d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Fri, 1 Jan 2016 18:07:26 -0500 Subject: [PATCH] lib/android: fix manipulation of Java stack from assets_and_resources MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- lib/android/assets_and_resources.nit | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/android/assets_and_resources.nit b/lib/android/assets_and_resources.nit index 8bbc7da..baf4e4a 100644 --- a/lib/android/assets_and_resources.nit +++ b/lib/android/assets_and_resources.nit @@ -138,7 +138,7 @@ class AssetManager # Return a string array of all the assets at the given path fun list(path: String): Array[String] do - sys.jni_env.push_local_frame(1) + sys.jni_env.push_local_frame(8) var java_array = native_assets_manager.list(path.to_java_string) var nit_array = new Array[String] for s in java_array do @@ -150,16 +150,15 @@ class AssetManager # Open an asset using ACCESS_STREAMING mode, returning a NativeInputStream private fun open(file_name: String): NativeInputStream do - sys.jni_env.push_local_frame(1) + sys.jni_env.push_local_frame(2) var return_value = native_assets_manager.open(file_name.to_java_string) - sys.jni_env.pop_local_frame - return return_value + return return_value.pop_from_local_frame end # Open an asset using it's name and returning a NativeAssetFileDescriptor # `file_name` is private fun open_fd(file_name: String): NativeAssetFileDescriptor do - sys.jni_env.push_local_frame(1) + sys.jni_env.push_local_frame(2) var return_value = native_assets_manager.open_fd(file_name.to_java_string).new_global_ref sys.jni_env.pop_local_frame return return_value @@ -373,7 +372,7 @@ extern class NativeAssetFileDescriptor in "Java" `{ android.content.res.AssetFil fun declared_length: Int in "Java" `{ return (int)self.getDeclaredLength(); `} # fun extras: Bundle in "Java" `{ return self.getExtras(); `} - fun file_descriptor: NativeFileDescriptor in "Java" `{ + fun file_descriptor: NativeFileDescriptor in "Java" `{ FileDescriptor fd = self.getFileDescriptor(); if (fd == null) { Log.e("AssetFileDesciptorError", "Can't retrieve the FileDescriptor of this AssetFileDescriptor"); -- 1.7.9.5