From 53c3c327f0ebea276d977f58a59cdb9449165518 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 17 Aug 2018 13:43:07 -0700 Subject: [android] Upgrade to latest jni.hpp --- platform/android/src/map/image.cpp | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) (limited to 'platform/android/src/map/image.cpp') diff --git a/platform/android/src/map/image.cpp b/platform/android/src/map/image.cpp index ce89e22d7a..ee3c7012a7 100644 --- a/platform/android/src/map/image.cpp +++ b/platform/android/src/map/image.cpp @@ -6,43 +6,36 @@ namespace mbgl { namespace android { mbgl::style::Image Image::getImage(jni::JNIEnv& env, jni::Object image) { - static auto widthField = Image::javaClass.GetField(env, "width"); - static auto heightField = Image::javaClass.GetField(env, "height"); - static auto pixelRatioField = Image::javaClass.GetField(env, "pixelRatio"); - static auto bufferField = Image::javaClass.GetField>(env, "buffer"); - static auto nameField = Image::javaClass.GetField(env, "name"); - static auto sdfField = Image::javaClass.GetField(env, "sdf"); + static auto javaClass = jni::Class::Singleton(env); + static auto widthField = javaClass.GetField(env, "width"); + static auto heightField = javaClass.GetField(env, "height"); + static auto pixelRatioField = javaClass.GetField(env, "pixelRatio"); + static auto bufferField = javaClass.GetField>(env, "buffer"); + static auto nameField = javaClass.GetField(env, "name"); + static auto sdfField = javaClass.GetField(env, "sdf"); auto height = image.Get(env, heightField); auto width = image.Get(env, widthField); auto pixelRatio = image.Get(env, pixelRatioField); - auto pixels = image.Get(env, bufferField); - auto jName = image.Get(env, nameField); - auto name = jni::Make(env, jName); + auto pixels = jni::SeizeLocal(env, image.Get(env, bufferField)); + auto name = jni::Make(env, *jni::SeizeLocal(env, image.Get(env, nameField))); auto sdf = (bool) image.Get(env, sdfField); - jni::DeleteLocalRef(env, jName); - jni::NullCheck(env, &pixels); - std::size_t size = pixels.Length(env); + jni::NullCheck(env, pixels->Get()); + std::size_t size = pixels->Length(env); mbgl::PremultipliedImage premultipliedImage({ static_cast(width), static_cast(height) }); if (premultipliedImage.bytes() != uint32_t(size)) { throw mbgl::util::SpriteImageException("Sprite image pixel count mismatch"); } - jni::GetArrayRegion(env, *pixels, 0, size, reinterpret_cast(premultipliedImage.data.get())); - jni::DeleteLocalRef(env, pixels); + jni::GetArrayRegion(env, **pixels, 0, size, reinterpret_cast(premultipliedImage.data.get())); return mbgl::style::Image {name, std::move(premultipliedImage), pixelRatio, sdf}; } void Image::registerNative(jni::JNIEnv &env) { - // Lookup the class - Image::javaClass = *jni::Class::Find(env).NewGlobalRef(env).release(); + jni::Class::Singleton(env); } -jni::Class Image::javaClass; - - } // namespace android } // namespace mb - -- cgit v1.2.1 From 79bf0e8af6bf9ec829a352d56b8e70ccc8f4fa41 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 22 Aug 2018 12:27:43 -0700 Subject: [android] jni.hpp 4.0.0 --- platform/android/src/map/image.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'platform/android/src/map/image.cpp') diff --git a/platform/android/src/map/image.cpp b/platform/android/src/map/image.cpp index ee3c7012a7..a91cc938ed 100644 --- a/platform/android/src/map/image.cpp +++ b/platform/android/src/map/image.cpp @@ -5,8 +5,8 @@ namespace mbgl { namespace android { -mbgl::style::Image Image::getImage(jni::JNIEnv& env, jni::Object image) { - static auto javaClass = jni::Class::Singleton(env); +mbgl::style::Image Image::getImage(jni::JNIEnv& env, const jni::Object& image) { + static auto& javaClass = jni::Class::Singleton(env); static auto widthField = javaClass.GetField(env, "width"); static auto heightField = javaClass.GetField(env, "height"); static auto pixelRatioField = javaClass.GetField(env, "pixelRatio"); @@ -17,19 +17,19 @@ mbgl::style::Image Image::getImage(jni::JNIEnv& env, jni::Object image) { auto height = image.Get(env, heightField); auto width = image.Get(env, widthField); auto pixelRatio = image.Get(env, pixelRatioField); - auto pixels = jni::SeizeLocal(env, image.Get(env, bufferField)); - auto name = jni::Make(env, *jni::SeizeLocal(env, image.Get(env, nameField))); + auto pixels = image.Get(env, bufferField); + auto name = jni::Make(env, image.Get(env, nameField)); auto sdf = (bool) image.Get(env, sdfField); - jni::NullCheck(env, pixels->Get()); - std::size_t size = pixels->Length(env); + jni::NullCheck(env, pixels.get()); + std::size_t size = pixels.Length(env); mbgl::PremultipliedImage premultipliedImage({ static_cast(width), static_cast(height) }); if (premultipliedImage.bytes() != uint32_t(size)) { throw mbgl::util::SpriteImageException("Sprite image pixel count mismatch"); } - jni::GetArrayRegion(env, **pixels, 0, size, reinterpret_cast(premultipliedImage.data.get())); + jni::GetArrayRegion(env, *pixels, 0, size, reinterpret_cast(premultipliedImage.data.get())); return mbgl::style::Image {name, std::move(premultipliedImage), pixelRatio, sdf}; } -- cgit v1.2.1