Skip to content

Commit 70dacb9

Browse files
authored
Change mp_obj_type to pointer (lvgl#284)
Fixes lvgl#282
1 parent efe6603 commit 70dacb9

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

gen/gen_mpy.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -711,15 +711,15 @@ def register_int_ptr_type(convertor, *types):
711711
712712
typedef struct mp_lv_obj_type_t {{
713713
const lv_obj_class_t *lv_obj_class;
714-
mp_obj_type_t mp_obj_type;
714+
const mp_obj_type_t *mp_obj_type;
715715
}} mp_lv_obj_type_t;
716716
717717
STATIC const mp_lv_obj_type_t mp_lv_{base_obj}_type;
718718
STATIC const mp_lv_obj_type_t *mp_lv_obj_types[];
719719
720720
STATIC inline const mp_obj_type_t *get_BaseObj_type()
721721
{{
722-
return &mp_lv_{base_obj}_type.mp_obj_type;
722+
return mp_lv_{base_obj}_type.mp_obj_type;
723723
}}
724724
725725
MP_DEFINE_EXCEPTION(LvReferenceError, Exception)
@@ -931,7 +931,7 @@ def register_int_ptr_type(convertor, *types):
931931
const mp_lv_obj_type_t **iter = &mp_lv_obj_types[0];
932932
for (; *iter; iter++) {
933933
if ((*iter)->lv_obj_class == lv_obj_class) {
934-
mp_obj_type = &(*iter)->mp_obj_type;
934+
mp_obj_type = (*iter)->mp_obj_type;
935935
break;
936936
}
937937
}
@@ -1033,7 +1033,7 @@ def register_int_ptr_type(convertor, *types):
10331033
#else // LV_OBJ_T
10341034
10351035
typedef struct mp_lv_obj_type_t {
1036-
mp_obj_type_t mp_obj_type;
1036+
mp_obj_type_t *mp_obj_type;
10371037
} mp_lv_obj_type_t;
10381038
10391039
#endif
@@ -2555,7 +2555,7 @@ def gen_obj_methods(obj_name):
25552555
obj_metadata[obj_name]['members'].update({get_enum_member_name(enum_member_name): {'type':'enum_member'} for enum_member_name in get_enum_members(obj_name)})
25562556
# add enums that match object name
25572557
obj_enums = [enum_name for enum_name in enums.keys() if is_method_of(enum_name, obj_name)]
2558-
enum_types = ["{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_lv_{enum}_type.mp_obj_type) }}".
2558+
enum_types = ["{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_lv_{enum}_type_base) }}".
25592559
format(name=sanitize(method_name_from_func_name(enum_name)), enum=enum_name) for enum_name in obj_enums]
25602560
obj_metadata[obj_name]['members'].update({method_name_from_func_name(enum_name): {'type':'enum_type'} for enum_name in obj_enums})
25612561
for enum_name in obj_enums:
@@ -2633,11 +2633,11 @@ def gen_obj(obj_name):
26332633
locals_dict, &{obj}_locals_dict
26342634
);
26352635
2636-
STATIC const mp_lv_obj_type_t mp_lv_{obj}_type = {{
2636+
GENMPY_UNUSED STATIC const mp_lv_obj_type_t mp_lv_{obj}_type = {{
26372637
#ifdef LV_OBJ_T
26382638
.lv_obj_class = {lv_class},
26392639
#endif
2640-
.mp_obj_type = mp_lv_{obj}_type_base,
2640+
.mp_obj_type = &mp_lv_{obj}_type_base,
26412641
}};
26422642
""".format(
26432643
module_name = module_name,
@@ -2648,7 +2648,7 @@ def gen_obj(obj_name):
26482648
make_new = 'make_new, %s_make_new,' % obj_name if is_obj else '',
26492649
binary_op = 'binary_op, mp_lv_obj_binary_op,' if is_obj else '',
26502650
buffer = 'buffer, mp_lv_obj_get_buffer,' if is_obj else '',
2651-
parent = 'parent, &mp_lv_%s_type.mp_obj_type,' % parent_obj_names[obj_name] if obj_name in parent_obj_names and parent_obj_names[obj_name] else '',
2651+
parent = 'parent, &mp_lv_%s_type_base,' % parent_obj_names[obj_name] if obj_name in parent_obj_names and parent_obj_names[obj_name] else '',
26522652
lv_class = '&lv_%s_class' % obj_name if is_obj else 'NULL',
26532653
))
26542654

@@ -2888,11 +2888,11 @@ def generate_struct_functions(struct_list):
28882888
}};
28892889
""".format(
28902890
module_name = sanitize(module_name),
2891-
objects = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{obj}), MP_ROM_PTR(&mp_lv_{obj}_type.mp_obj_type) }},\n '.
2891+
objects = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{obj}), MP_ROM_PTR(&mp_lv_{obj}_type_base) }},\n '.
28922892
format(obj = sanitize(o)) for o in obj_names]),
28932893
functions = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_{func}_mpobj) }},\n '.
28942894
format(name = sanitize(simplify_identifier(f.name)), func = f.name) for f in module_funcs]),
2895-
enums = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_lv_{enum}_type.mp_obj_type) }},\n '.
2895+
enums = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_lv_{enum}_type_base) }},\n '.
28962896
format(name = sanitize(get_enum_name(enum_name)), enum=enum_name) for enum_name in enums.keys() if enum_name not in enum_referenced]),
28972897
structs = ''.join(['{{ MP_ROM_QSTR(MP_QSTR_{name}), MP_ROM_PTR(&mp_{struct_name}_type) }},\n '.
28982898
format(name = sanitize(simplify_identifier(struct_name)), struct_name = sanitize(struct_name)) for struct_name in generated_structs \

0 commit comments

Comments
 (0)