summaryrefslogtreecommitdiff
path: root/extmod
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-06-06 22:57:31 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-06-06 22:57:54 +0300
commit1679696612007107dac55d936006b1923eda2475 (patch)
tree2c517a0a4223932b3d2edb9a780076407354025c /extmod
parent07408cbd1f1c10b6d4784dccdea3f14e44605dca (diff)
moductypes: Swap address and descriptor args in constructor.
Now address comes first, and args related to struct type are groupped next. Besides clear groupping, should help catch errors eagerly (e.g. forgetting to pass address will error out). Also, improve args number checking/reporting overall.
Diffstat (limited to 'extmod')
-rw-r--r--extmod/moductypes.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/extmod/moductypes.c b/extmod/moductypes.c
index dff8abd8d..56da80931 100644
--- a/extmod/moductypes.c
+++ b/extmod/moductypes.c
@@ -122,14 +122,11 @@ STATIC NORETURN void syntax_error(void) {
}
STATIC mp_obj_t uctypes_struct_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
- (void)n_kw;
- if (n_args < 2 || n_args > 3) {
- syntax_error();
- }
+ mp_arg_check_num(n_args, n_kw, 2, 3, false);
mp_obj_uctypes_struct_t *o = m_new_obj(mp_obj_uctypes_struct_t);
o->base.type = type_in;
- o->desc = args[0];
- o->addr = (void*)mp_obj_get_int(args[1]);
+ o->addr = (void*)mp_obj_get_int(args[0]);
+ o->desc = args[1];
o->flags = LAYOUT_NATIVE;
if (n_args == 3) {
o->flags = mp_obj_get_int(args[2]);