Add MapRenderer dangling reference check (#3541)

Co-authored-by: Bart Louwers <bart.louwers@gmail.com>
This commit is contained in:
Adrian Cojocaru
2025-06-11 01:27:09 +03:00
committed by GitHub
parent 6704f0f80a
commit 7b8f7458ca
5 changed files with 48 additions and 17 deletions

View File

@@ -138,6 +138,18 @@ void MapRenderer::requestRender() {
}
}
void MapRenderer::requestRender(JNIEnv& env, jni::Local<jni::Object<MapRenderer>>& ref) {
try {
static auto& javaClass = jni::Class<MapRenderer>::Singleton(env);
static auto onInvalidate = javaClass.GetMethod<void()>(env, "requestRender");
if (ref) {
ref.Call(env, onInvalidate);
}
} catch (const std::exception& exception) {
Log::Error(Event::Android, std::string("MapRenderer::requestRender failed: ") + exception.what());
}
}
void MapRenderer::update(std::shared_ptr<UpdateParameters> params) {
try {
// Lock on the parameters