Skip to content

Commit

Permalink
Merge pull request adafruit#6406 from dhalbert/restore-gc-collect-on-…
Browse files Browse the repository at this point in the history
…import

Restore automatic gc_collect() after an import
  • Loading branch information
tannewt authored May 18, 2022
2 parents 036a582 + 4487f61 commit 4637855
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
4 changes: 4 additions & 0 deletions locale/circuitpython.pot
Original file line number Diff line number Diff line change
Expand Up @@ -1022,6 +1022,10 @@ msgstr ""
msgid "Failed to acquire mutex, err 0x%04x"
msgstr ""

#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Failed to allocate %q buffer"
msgstr ""

#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "Failed to allocate RX buffer"
Expand Down
4 changes: 4 additions & 0 deletions py/builtinimport.c
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,10 @@ STATIC mp_obj_t process_import_at_level(qstr full_mod_name, qstr level_mod_name,
// not a package. This will be caught on the next iteration
// because the file will not exist.
}

// Loading a module thrashes the heap significantly so we explicitly clean up
// afterwards.
gc_collect();
}

if (outer_module_obj != MP_OBJ_NULL && VERIFY_PTR(MP_OBJ_TO_PTR(outer_module_obj))) {
Expand Down
2 changes: 1 addition & 1 deletion shared-module/rgbmatrix/RGBMatrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ void common_hal_rgbmatrix_rgbmatrix_reconstruct(rgbmatrix_rgbmatrix_obj_t *self,
mp_raise_ValueError(translate("Invalid argument"));
break;
case PROTOMATTER_ERR_MALLOC:
mp_raise_msg(&mp_type_MemoryError, NULL);
mp_raise_msg_varg(&mp_type_MemoryError, translate("Failed to allocate %q buffer"), MP_QSTR_RGBMatrix);
break;
default:
mp_raise_msg_varg(&mp_type_RuntimeError,
Expand Down

0 comments on commit 4637855

Please sign in to comment.