summaryrefslogtreecommitdiff
path: root/py/persistentcode.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2022-09-19 10:36:17 +1000
committerDamien George <damien@micropython.org>2022-09-19 23:27:08 +1000
commitfb77be150636090d69460578ed8458d84db02614 (patch)
treee7fc82ea9e14d22db6d82d762cf7f88075643475 /py/persistentcode.c
parentcc588ac3a91a16807242347e8b182d4bc8b7f139 (diff)
py: Include filename in errors from loading/saving files via "open".
This improves error messages in mpy-cross: - When loading a .py file that doesn't exist (or can't be opened) it now includes the filename in the OSError. - When saving a .mpy file that can't be opened it now raises an exception (prior, it would silently fail), and includes the filename in the OSError. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/persistentcode.c')
-rw-r--r--py/persistentcode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/py/persistentcode.c b/py/persistentcode.c
index de84c1735..67c8f327f 100644
--- a/py/persistentcode.c
+++ b/py/persistentcode.c
@@ -644,6 +644,9 @@ void mp_raw_code_save_file(mp_compiled_module_t *cm, const char *filename) {
MP_THREAD_GIL_EXIT();
int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);
MP_THREAD_GIL_ENTER();
+ if (fd < 0) {
+ mp_raise_OSError_with_filename(errno, filename);
+ }
mp_print_t fd_print = {(void *)(intptr_t)fd, fd_print_strn};
mp_raw_code_save(cm, &fd_print);
MP_THREAD_GIL_EXIT();