summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'scanning/offload/offload_scan_manager.cpp')
-rw-r--r--scanning/offload/offload_scan_manager.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/scanning/offload/offload_scan_manager.cpp b/scanning/offload/offload_scan_manager.cpp
index 420c2fa..2592aee 100644
--- a/scanning/offload/offload_scan_manager.cpp
+++ b/scanning/offload/offload_scan_manager.cpp
@@ -76,6 +76,7 @@ OffloadScanManager::OffloadScanManager(
76 wifi_offload_callback_(nullptr), 76 wifi_offload_callback_(nullptr),
77 death_recipient_(nullptr), 77 death_recipient_(nullptr),
78 offload_status_(OffloadScanManager::kError), 78 offload_status_(OffloadScanManager::kError),
79 cached_scan_results_(new std::vector<NativeScanResult>()),
79 service_available_(false), 80 service_available_(false),
80 offload_service_utils_(utils), 81 offload_service_utils_(utils),
81 offload_callback_handlers_(new OffloadCallbackHandlersImpl(this)), 82 offload_callback_handlers_(new OffloadCallbackHandlersImpl(this)),
@@ -205,8 +206,6 @@ bool OffloadScanManager::startScan(
205 } 206 }
206 207
207 *reason_code = OffloadScanManager::kNone; 208 *reason_code = OffloadScanManager::kNone;
208 /* Clear up the scan cache every time a new scan is requested */
209 cached_scan_results_.clear();
210 return true; 209 return true;
211} 210}
212 211
@@ -240,7 +239,7 @@ OffloadScanManager::StatusCode OffloadScanManager::getOffloadStatus() const {
240 239
241bool OffloadScanManager::getScanResults( 240bool OffloadScanManager::getScanResults(
242 std::vector<NativeScanResult>* out_scan_results) { 241 std::vector<NativeScanResult>* out_scan_results) {
243 for (auto scan_result : cached_scan_results_) { 242 for (auto scan_result : *cached_scan_results_) {
244 out_scan_results->push_back(scan_result); 243 out_scan_results->push_back(scan_result);
245 } 244 }
246 return true; 245 return true;
@@ -262,12 +261,17 @@ OffloadScanManager::~OffloadScanManager() {
262 if (wifi_offload_hal_ != nullptr) { 261 if (wifi_offload_hal_ != nullptr) {
263 wifi_offload_hal_->unlinkToDeath(death_recipient_); 262 wifi_offload_hal_->unlinkToDeath(death_recipient_);
264 } 263 }
264 delete cached_scan_results_;
265} 265}
266 266
267void OffloadScanManager::ReportScanResults( 267void OffloadScanManager::ReportScanResults(
268 const vector<ScanResult>& scanResult) { 268 const vector<ScanResult>& scanResult) {
269 cached_scan_results_ = 269 cached_scan_results_->clear();
270 OffloadScanUtils::convertToNativeScanResults(scanResult); 270 if (!OffloadScanUtils::convertToNativeScanResults(scanResult,
271 cached_scan_results_)) {
272 LOG(WARNING) << "Unable to convert scan results to native format";
273 return;
274 }
271 if (event_callback_ != nullptr) { 275 if (event_callback_ != nullptr) {
272 event_callback_->OnOffloadScanResult(); 276 event_callback_->OnOffloadScanResult();
273 } else { 277 } else {