Use EnvAttachingDeleter for LocalGlyphRasterizer and AssetManagerFileSource (#2487)

This commit is contained in:
Bart Louwers
2024-06-11 00:14:52 +02:00
committed by GitHub
parent 56f1d3e3e5
commit d82f722a68
4 changed files with 4 additions and 4 deletions

View File

@@ -60,7 +60,7 @@ AssetManagerFileSource::AssetManagerFileSource(jni::JNIEnv& env,
const jni::Object<android::AssetManager>& assetManager_,
const ResourceOptions resourceOptions,
const ClientOptions clientOptions)
: assetManager(jni::NewGlobal(env, assetManager_)),
: assetManager(jni::NewGlobal<jni::EnvAttachingDeleter>(env, assetManager_)),
impl(std::make_unique<util::Thread<Impl>>(
util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_FILE),
"AssetManagerFileSource",

View File

@@ -35,7 +35,7 @@ public:
private:
class Impl;
jni::Global<jni::Object<android::AssetManager>> assetManager;
jni::Global<jni::Object<android::AssetManager>, jni::EnvAttachingDeleter> assetManager;
std::unique_ptr<util::Thread<Impl>> impl;
};

View File

@@ -39,7 +39,7 @@ LocalGlyphRasterizer::LocalGlyphRasterizer() {
static auto& javaClass = jni::Class<LocalGlyphRasterizer>::Singleton(*env);
static auto constructor = javaClass.GetConstructor(*env);
javaObject = jni::NewGlobal(*env, javaClass.New(*env, constructor));
javaObject = jni::NewGlobal<jni::EnvAttachingDeleter>(*env, javaClass.New(*env, constructor));
}
PremultipliedImage LocalGlyphRasterizer::drawGlyphBitmap(const std::string& fontFamily,

View File

@@ -26,7 +26,7 @@ public:
PremultipliedImage drawGlyphBitmap(const std::string& fontFamily, const bool bold, const char16_t glyphID);
private:
jni::Global<jni::Object<LocalGlyphRasterizer>> javaObject;
jni::Global<jni::Object<LocalGlyphRasterizer>, jni::EnvAttachingDeleter> javaObject;
};
} // namespace android