mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-20 01:08:15 +01:00
[python] upgrade to micropython 1.12
This commit is contained in:
committed by
LeaNumworks
parent
010fb1894f
commit
7df8c2935a
@@ -97,7 +97,7 @@ STATIC size_t calc_size_items(const char *fmt, size_t *total_sz) {
|
||||
size += cnt;
|
||||
} else {
|
||||
total_cnt += cnt;
|
||||
mp_uint_t align;
|
||||
size_t align;
|
||||
size_t sz = mp_binary_get_size(fmt_type, *fmt, &align);
|
||||
while (cnt--) {
|
||||
// Apply alignment
|
||||
@@ -146,6 +146,7 @@ STATIC mp_obj_t struct_unpack_from(size_t n_args, const mp_obj_t *args) {
|
||||
}
|
||||
p += offset;
|
||||
}
|
||||
byte *p_base = p;
|
||||
|
||||
// Check that the input buffer is big enough to unpack all the values
|
||||
if (p + total_sz > end_p) {
|
||||
@@ -164,7 +165,7 @@ STATIC mp_obj_t struct_unpack_from(size_t n_args, const mp_obj_t *args) {
|
||||
res->items[i++] = item;
|
||||
} else {
|
||||
while (cnt--) {
|
||||
item = mp_binary_get_val(fmt_type, *fmt, &p);
|
||||
item = mp_binary_get_val(fmt_type, *fmt, p_base, &p);
|
||||
res->items[i++] = item;
|
||||
}
|
||||
}
|
||||
@@ -179,6 +180,7 @@ STATIC void struct_pack_into_internal(mp_obj_t fmt_in, byte *p, size_t n_args, c
|
||||
const char *fmt = mp_obj_str_get_str(fmt_in);
|
||||
char fmt_type = get_fmt_type(&fmt);
|
||||
|
||||
byte *p_base = p;
|
||||
size_t i;
|
||||
for (i = 0; i < n_args;) {
|
||||
mp_uint_t cnt = 1;
|
||||
@@ -203,7 +205,7 @@ STATIC void struct_pack_into_internal(mp_obj_t fmt_in, byte *p, size_t n_args, c
|
||||
} else {
|
||||
// If we run out of args then we just finish; CPython would raise struct.error
|
||||
while (cnt-- && i < n_args) {
|
||||
mp_binary_set_val(fmt_type, *fmt, args[i++], &p);
|
||||
mp_binary_set_val(fmt_type, *fmt, args[i++], p_base, &p);
|
||||
}
|
||||
}
|
||||
fmt++;
|
||||
|
||||
Reference in New Issue
Block a user