Pass RttResult vector as a pointer
authorSeonah Moon <seonah1.moon@samsung.com>
Wed, 29 Jul 2020 08:11:53 +0000 (17:11 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Wed, 29 Jul 2020 08:11:53 +0000 (17:11 +0900)
src/RttHalEventCallbackHandler.cpp

index b6bb49093a95fc11472b225c660f40c25e09cc14..de845fdc302278d699a92cd109e5a30d51cadc49 100644 (file)
@@ -115,21 +115,25 @@ static gboolean handleEvent(gpointer event)
        return G_SOURCE_REMOVE;
 }
 
-static void destroyRttResultEventData(std::vector<RttResult> rttResults)
+static void destroyRttResultEventData(std::vector<RttResult> *rttResults)
 {
-       for (RttResult & iter : rttResults) {
+       for (RttResult & iter : *rttResults) {
                delete iter.lci;
                delete iter.lcr;
        }
-       rttResults.clear();
+
+       rttResults->clear();
+       delete rttResults;
 }
 
 static void destoryEventData(RttEventData *eventData)
 {
        __NAN_LOG_FUNC_ENTER__;
 
-       if (eventData->type == RTT_EVENT_RANGE_RESULT)
-               destroyRttResultEventData(*(static_cast<std::vector<RttResult> *>(eventData->data)));
+       if (eventData->type == RTT_EVENT_RANGE_RESULT) {
+               destroyRttResultEventData(static_cast<std::vector<RttResult> *>(eventData->data));
+               eventData->data = nullptr;
+       }
        g_free(eventData);
 
     __NAN_LOG_FUNC_EXIT__;
@@ -171,7 +175,7 @@ void onRttResults(wifi_request_id id, unsigned num_results, wifi_rtt_result *rtt
        if (!on_notify_rtt_results)
                return;
 
-       std::vector<RttResult> rttResults;
+       std::vector<RttResult> *rttResults = new std::vector<RttResult>();
        for (unsigned i = 0; i < num_results; i++) {
                RttResult rttResult;
 
@@ -186,10 +190,10 @@ void onRttResults(wifi_request_id id, unsigned num_results, wifi_rtt_result *rtt
                rttResult.lcr = new TlvElement(rtt_result[i]->LCR->id,
                                rtt_result[i]->LCR->len, rtt_result[i]->LCR->data);
 
-               rttResults.push_back(rttResult);
+               rttResults->push_back(rttResult);
        }
 
-       attachEventSource(id, RTT_EVENT_RANGE_RESULT, static_cast<void *> (&rttResults));
+       attachEventSource(id, RTT_EVENT_RANGE_RESULT, static_cast<void *> (rttResults));
 
        __NAN_LOG_FUNC_EXIT__;
 }