summaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2019-07-16 19:53:36 -0400
committerDan Halbert <halbert@halwitz.org>2019-07-16 19:53:36 -0400
commit364ee62d108bbdc1d4da8bb646a9332a68964b76 (patch)
treea35823d7f86e9c422f280823df71b960976ab242 /ports
parentcb99546ea569bd91421e7ee0884c2756387a12d3 (diff)
Address review comments.
Diffstat (limited to 'ports')
-rw-r--r--ports/nrf/common-hal/bleio/Scanner.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/ports/nrf/common-hal/bleio/Scanner.c b/ports/nrf/common-hal/bleio/Scanner.c
index fa4f3923c..57ce940ab 100644
--- a/ports/nrf/common-hal/bleio/Scanner.c
+++ b/ports/nrf/common-hal/bleio/Scanner.c
@@ -74,10 +74,9 @@ STATIC void scanner_on_ble_evt(ble_evt_t *ble_evt, void *scanner_in) {
}
void common_hal_bleio_scanner_construct(bleio_scanner_obj_t *self) {
- self->scan_entries = mp_obj_new_list(0, NULL);
}
-void common_hal_bleio_scanner_scan(bleio_scanner_obj_t *self, mp_float_t timeout, mp_float_t interval, mp_float_t window) {
+mp_obj_t common_hal_bleio_scanner_scan(bleio_scanner_obj_t *self, mp_float_t timeout, mp_float_t interval, mp_float_t window) {
common_hal_bleio_adapter_set_enabled(true);
ble_drv_add_event_handler(scanner_on_ble_evt, self);
@@ -87,8 +86,7 @@ void common_hal_bleio_scanner_scan(bleio_scanner_obj_t *self, mp_float_t timeout
.scan_phys = BLE_GAP_PHY_1MBPS,
};
- // Empty the advertising reports list.
- mp_obj_list_clear(self->scan_entries);
+ self->scan_entries = mp_obj_new_list(0, NULL);
uint32_t err_code;
err_code = sd_ble_gap_scan_start(&scan_params, &m_scan_buffer);
@@ -99,8 +97,9 @@ void common_hal_bleio_scanner_scan(bleio_scanner_obj_t *self, mp_float_t timeout
mp_hal_delay_ms(timeout * 1000);
sd_ble_gap_scan_stop();
-}
-mp_obj_t common_hal_bleio_scanner_get_scan_entries(bleio_scanner_obj_t *self) {
- return self->scan_entries;
+ // Return list, and don't hang on to it, so it can be GC'd.
+ mp_obj_t entries = self->scan_entries;
+ self->scan_entries = MP_OBJ_NULL;
+ return entries;
}