From 6c167124aa889f46bd082ff287a55a76e7b0ad13 Mon Sep 17 00:00:00 2001 From: Guogang Li Date: Tue, 18 Jun 2024 16:17:51 -0700 Subject: [PATCH] Fixed a crash in HelloConnections PiperOrigin-RevId: 644543789 --- connections/c/nc.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/connections/c/nc.cc b/connections/c/nc.cc index 8a8680c5..3c736f94 100644 --- a/connections/c/nc.cc +++ b/connections/c/nc.cc @@ -318,11 +318,12 @@ void NcStartDiscovery(NC_INSTANCE instance, const NC_DATA* service_id, cpp_discovery_options.allowed.web_rtc = discovery_options->common_options.allowed_mediums[NC_MEDIUM_WEB_RTC]; + NC_DISCOVERY_LISTENER discovery_listener_copy = *discovery_listener; ::nearby::connections::DiscoveryListener listener; listener.endpoint_distance_changed_cb = [=](const std::string& endpoint_id, ::nearby::connections::DistanceInfo info) { - discovery_listener->endpoint_distance_changed_callback( + discovery_listener_copy.endpoint_distance_changed_callback( instance, convertStringToInt(endpoint_id), static_cast(info)); }; @@ -334,14 +335,14 @@ void NcStartDiscovery(NC_INSTANCE instance, const NC_DATA* service_id, .data = (char*)endpoint_info.data()}; NC_DATA service_id_data = {.size = static_cast(service_id.size()), .data = (char*)service_id.data()}; - discovery_listener->endpoint_found_callback( + discovery_listener_copy.endpoint_found_callback( instance, convertStringToInt(endpoint_id), &endpoint_info_data, &service_id_data); }; listener.endpoint_lost_cb = [=](const std::string& endpoint_id) { - discovery_listener->endpoint_lost_callback(instance, - convertStringToInt(endpoint_id)); + discovery_listener_copy.endpoint_lost_callback( + instance, convertStringToInt(endpoint_id)); }; nc_context->core->StartDiscovery( std::string(service_id->data, service_id->size),