summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/binary.c4
-rw-r--r--py/frozenmod.c8
-rw-r--r--py/objnamedtuple.h6
3 files changed, 12 insertions, 6 deletions
diff --git a/py/binary.c b/py/binary.c
index bb334ed3d..4f02525d7 100644
--- a/py/binary.c
+++ b/py/binary.c
@@ -148,7 +148,7 @@ mp_obj_t mp_binary_get_val_array(char typecode, void *p, mp_uint_t index) {
#endif
#if MICROPY_PY_BUILTINS_FLOAT
case 'f':
- return mp_obj_new_float((mp_float_t)((float*)p)[index]);
+ return mp_obj_new_float(((float*)p)[index]);
case 'd':
return mp_obj_new_float(((double*)p)[index]);
#endif
@@ -213,7 +213,7 @@ mp_obj_t mp_binary_get_val(char struct_type, char val_type, byte **ptr) {
#if MICROPY_NONSTANDARD_TYPECODES
} else if (val_type == 'S') {
const char *s_val = (const char*)(uintptr_t)(mp_uint_t)val;
- return mp_obj_new_str(s_val, strlen(s_val), false);
+ return mp_obj_new_str(s_val, strlen(s_val));
#endif
#if MICROPY_PY_BUILTINS_FLOAT
} else if (val_type == 'f') {
diff --git a/py/frozenmod.c b/py/frozenmod.c
index 5464d0af9..a9143b582 100644
--- a/py/frozenmod.c
+++ b/py/frozenmod.c
@@ -43,8 +43,14 @@ extern const char mp_frozen_str_names[];
extern const uint32_t mp_frozen_str_sizes[];
extern const char mp_frozen_str_content[];
-// On input, *len contains size of name, on output - size of content
+// str_len is length of str. *len is set on on output to size of content
const char *mp_find_frozen_str(const char *str, size_t str_len, size_t *len) {
+ // If the frozen module pseudo dir (e.g., ".frozen/") is a prefix of str, remove it.
+ if (strncmp(str, MP_FROZEN_FAKE_DIR_SLASH, MP_FROZEN_FAKE_DIR_SLASH_LENGTH) == 0) {
+ str = str + MP_FROZEN_FAKE_DIR_SLASH_LENGTH;
+ str_len = str_len - MP_FROZEN_FAKE_DIR_SLASH_LENGTH;
+ }
+
const char *name = mp_frozen_str_names;
size_t offset = 0;
diff --git a/py/objnamedtuple.h b/py/objnamedtuple.h
index a36404b8d..deac7107b 100644
--- a/py/objnamedtuple.h
+++ b/py/objnamedtuple.h
@@ -39,7 +39,7 @@
typedef struct _mp_obj_namedtuple_type_t {
mp_obj_type_t base;
- mp_uint_t n_fields;
+ size_t n_fields;
qstr fields[];
} mp_obj_namedtuple_type_t;
@@ -48,9 +48,9 @@ typedef struct _mp_obj_namedtuple_t {
} mp_obj_namedtuple_t;
void namedtuple_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind);
-
+size_t mp_obj_namedtuple_find_field(const mp_obj_namedtuple_type_t *type, qstr name);
void namedtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest);
-
+mp_obj_namedtuple_type_t *mp_obj_new_namedtuple_base(size_t n_fields, mp_obj_t *fields);
mp_obj_t namedtuple_make_new(const mp_obj_type_t *type_in, size_t n_args, size_t n_kw, const mp_obj_t *args);
#endif // MICROPY_PY_COLLECTIONS