Use EnvAttachingDeleter for LocalGlyphRasterizer and AssetManagerFileSource (#2487)
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user