summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-08-31 14:39:02 +1000
committerDamien George <damien@micropython.org>2020-09-01 12:36:28 +1000
commit0385b21597a3e5dc3d1a84cd37848fc2ac2a0e20 (patch)
treee7ec05a54db414679be840e13d40a11c9f0c3127
parentc70e59965977df97d1134f0dcadb9cd4ed58139f (diff)
downloadmicropython-0385b21597a3e5dc3d1a84cd37848fc2ac2a0e20.tar.gz
micropython-0385b21597a3e5dc3d1a84cd37848fc2ac2a0e20.zip
unix/modos: Support larger integer range in uos.stat fields.
On 32-bit builds these stat fields will overflow a small-int, so use mp_obj_new_int_from_uint to construct the int object. Signed-off-by: Damien George <damien@micropython.org>
-rw-r--r--ports/unix/modos.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ports/unix/modos.c b/ports/unix/modos.c
index 82b1b11425..5e719c5736 100644
--- a/ports/unix/modos.c
+++ b/ports/unix/modos.c
@@ -58,15 +58,15 @@ STATIC mp_obj_t mod_os_stat(mp_obj_t path_in) {
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(10, NULL));
t->items[0] = MP_OBJ_NEW_SMALL_INT(sb.st_mode);
- t->items[1] = MP_OBJ_NEW_SMALL_INT(sb.st_ino);
- t->items[2] = MP_OBJ_NEW_SMALL_INT(sb.st_dev);
- t->items[3] = MP_OBJ_NEW_SMALL_INT(sb.st_nlink);
- t->items[4] = MP_OBJ_NEW_SMALL_INT(sb.st_uid);
- t->items[5] = MP_OBJ_NEW_SMALL_INT(sb.st_gid);
+ t->items[1] = mp_obj_new_int_from_uint(sb.st_ino);
+ t->items[2] = mp_obj_new_int_from_uint(sb.st_dev);
+ t->items[3] = mp_obj_new_int_from_uint(sb.st_nlink);
+ t->items[4] = mp_obj_new_int_from_uint(sb.st_uid);
+ t->items[5] = mp_obj_new_int_from_uint(sb.st_gid);
t->items[6] = mp_obj_new_int_from_uint(sb.st_size);
- t->items[7] = MP_OBJ_NEW_SMALL_INT(sb.st_atime);
- t->items[8] = MP_OBJ_NEW_SMALL_INT(sb.st_mtime);
- t->items[9] = MP_OBJ_NEW_SMALL_INT(sb.st_ctime);
+ t->items[7] = mp_obj_new_int_from_uint(sb.st_atime);
+ t->items[8] = mp_obj_new_int_from_uint(sb.st_mtime);
+ t->items[9] = mp_obj_new_int_from_uint(sb.st_ctime);
return MP_OBJ_FROM_PTR(t);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_os_stat_obj, mod_os_stat);