summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2019-03-17 09:17:04 -0400
committerGitHub <noreply@github.com>2019-03-17 09:17:04 -0400
commit60f76941efabd579c28cddfd70218d6ef7c08067 (patch)
tree2bbc42dfe2b4ec86b93082c6d61bb9ecc942ad95
parent0cdb5fcfd9bb178a880bbbb1a043aa2452243e0f (diff)
parenta10e4fe21efd45596b82b50ffde98e8ec7e893c6 (diff)
Merge pull request #1649 from dhalbert/reload-flush-filesystem4.0.0-beta.5
flush filesystem before resetting heap
-rwxr-xr-xmain.c4
-rw-r--r--shared-module/displayio/__init__.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/main.c b/main.c
index 4b58b778d..77498d7de 100755
--- a/main.c
+++ b/main.c
@@ -213,10 +213,11 @@ bool run_code_py(safe_mode_t safe_mode) {
serial_write_compressed(translate("WARNING: Your code filename has two extensions\n"));
}
}
- // Turn off the display before the heap disappears.
+ // Turn off the display and flush the fileystem before the heap disappears.
#if CIRCUITPY_DISPLAYIO
reset_displays();
#endif
+ filesystem_flush();
stop_mp();
free_memory(heap);
supervisor_move_memory();
@@ -375,6 +376,7 @@ int run_repl(void) {
} else {
exit_code = pyexec_friendly_repl();
}
+ filesystem_flush();
reset_port();
reset_board();
stop_mp();
diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c
index 546a46b1e..ced5b0fef 100644
--- a/shared-module/displayio/__init__.c
+++ b/shared-module/displayio/__init__.c
@@ -29,10 +29,8 @@ void displayio_refresh_displays(void) {
if (mp_hal_is_interrupted()) {
return;
}
- // Somehow reloads from the sdcard are being lost. So, cheat and reraise.
- // But don't re-raise if already pending.
- if (reload_requested && MP_STATE_VM(mp_pending_exception) == MP_OBJ_NULL) {
- mp_raise_reload_exception();
+ if (reload_requested) {
+ // Reload is about to happen, so don't redisplay.
return;
}