diff options
Diffstat (limited to 'scanning/offload/offload_scan_manager.cpp')
-rw-r--r-- | scanning/offload/offload_scan_manager.cpp | 14 |
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 | ||
241 | bool OffloadScanManager::getScanResults( | 240 | bool 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 | ||
267 | void OffloadScanManager::ReportScanResults( | 267 | void 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 { |