Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
Hosted Weblate 2021-05-25 23:13:26 +02:00
commit d78467dd47

View File

@ -259,9 +259,14 @@ void usb_hid_save_report_descriptor(uint8_t *report_descriptor_space, size_t rep
void usb_hid_gc_collect(void) { void usb_hid_gc_collect(void) {
gc_collect_ptr(hid_devices_tuple); gc_collect_ptr(hid_devices_tuple);
// Mark any heap pointers in the static device list as in use. // Mark possible heap pointers in the static device list as in use.
for (mp_int_t i = 0; i < num_hid_devices; i++) { for (mp_int_t i = 0; i < num_hid_devices; i++) {
gc_collect_ptr(&hid_devices[i]); // Cast away the const for .report_descriptor. It could be in flash or on the heap.
// Constant report descriptors must be const so that they are used directly from flash
// and not copied into RAM.
gc_collect_ptr((void *)hid_devices[i].report_descriptor);
gc_collect_ptr(hid_devices[i].in_report_buffer);
gc_collect_ptr(hid_devices[i].out_report_buffer);
} }
} }