diff --git a/platform/android/MapLibreAndroid/src/cpp/style/sources/geojson_source.cpp b/platform/android/MapLibreAndroid/src/cpp/style/sources/geojson_source.cpp index 4188db872ba4..daadbca84941 100644 --- a/platform/android/MapLibreAndroid/src/cpp/style/sources/geojson_source.cpp +++ b/platform/android/MapLibreAndroid/src/cpp/style/sources/geojson_source.cpp @@ -62,8 +62,9 @@ GeoJSONSource::~GeoJSONSource() = default; void GeoJSONSource::setGeoJSONString(jni::JNIEnv& env, const jni::String& jString) { std::shared_ptr json = std::make_shared(jni::Make(env, jString)); - Update::Converter converterFn = [this, json](ActorRef _callback) { - converter->self().invoke(&FeatureConverter::convertJson, json, _callback); + ActorRef converterRef = converter->self(); + Update::Converter converterFn = [converterRef, json](ActorRef _callback) { + converterRef.invoke(&FeatureConverter::convertJson, json, _callback); }; setAsync(converterFn); @@ -72,8 +73,9 @@ void GeoJSONSource::setGeoJSONString(jni::JNIEnv& env, const jni::String& jStrin void GeoJSONSource::setGeoJSONStringSync(jni::JNIEnv& env, const jni::String& jString) { std::shared_ptr json = std::make_shared(jni::Make(env, jString)); - Update::Converter converterFn = [this, json](ActorRef _callback) { - converter->self().ask(&FeatureConverter::convertJson, json, _callback).wait(); + ActorRef converterRef = converter->self(); + Update::Converter converterFn = [converterRef, json](ActorRef _callback) { + converterRef.ask(&FeatureConverter::convertJson, json, _callback).wait(); }; setAsync(converterFn); @@ -193,8 +195,9 @@ void GeoJSONSource::setCollectionAsync(jni::JNIEnv& env, const jni::Object(env, jObject); auto object = std::make_shared(std::move(global)); - Update::Converter converterFn = [this, object](ActorRef _callback) { - converter->self().invoke(&FeatureConverter::convertObject, object, _callback); + ActorRef converterRef = converter->self(); + Update::Converter converterFn = [converterRef, object](ActorRef _callback) { + converterRef.invoke(&FeatureConverter::convertObject, object, _callback); }; setAsync(converterFn); @@ -235,8 +238,9 @@ void GeoJSONSource::setCollectionSync(jni::JNIEnv& env, const jni::Object(env, jObject); auto object = std::make_shared(std::move(global)); - Update::Converter converterFn = [this, object](ActorRef _callback) { - converter->self().ask(&FeatureConverter::convertObject, object, _callback).wait(); + ActorRef converterRef = converter->self(); + Update::Converter converterFn = [converterRef, object](ActorRef _callback) { + converterRef.ask(&FeatureConverter::convertObject, object, _callback).wait(); }; setAsync(converterFn);