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__;
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;
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__;
}