Skip to content

Commit 89797fd

Browse files
committed
various: Use mp_obj_get_type_qstr more widely
This removes runtime allocations of the cstring version of the qstring. It is not a size improvement
1 parent c37a25f commit 89797fd

File tree

9 files changed

+40
-40
lines changed

9 files changed

+40
-40
lines changed

extmod/vfs_fat_file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const byte fresult_to_errno_table[20] = {
4242

4343
STATIC void file_obj_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
4444
(void)kind;
45-
mp_printf(print, "<io.%s %p>", mp_obj_get_type_str(self_in), MP_OBJ_TO_PTR(self_in));
45+
mp_printf(print, "<io.%q %p>", mp_obj_get_type_qstr(self_in), MP_OBJ_TO_PTR(self_in));
4646
}
4747

4848
STATIC mp_uint_t file_obj_read(mp_obj_t self_in, void *buf, mp_uint_t size, int *errcode) {

extmod/vfs_posix_file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ STATIC void check_fd_is_open(const mp_obj_vfs_posix_file_t *o) {
3434
STATIC void vfs_posix_file_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
3535
(void)kind;
3636
mp_obj_vfs_posix_file_t *self = MP_OBJ_TO_PTR(self_in);
37-
mp_printf(print, "<io.%s %d>", mp_obj_get_type_str(self_in), self->fd);
37+
mp_printf(print, "<io.%q %d>", mp_obj_get_type_qstr(self_in), self->fd);
3838
}
3939

4040
mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_obj_t mode_in) {

ports/unix/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ extern const mp_obj_type_t mp_type_textio;
6060
STATIC void fdfile_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
6161
(void)kind;
6262
mp_obj_fdfile_t *self = MP_OBJ_TO_PTR(self_in);
63-
mp_printf(print, "<io.%s %d>", mp_obj_get_type_str(self_in), self->fd);
63+
mp_printf(print, "<io.%q %d>", mp_obj_get_type_qstr(self_in), self->fd);
6464
}
6565

6666
STATIC mp_uint_t fdfile_read(mp_obj_t o_in, void *buf, mp_uint_t size, int *errcode) {

py/obj.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ void mp_obj_get_array(mp_obj_t o, size_t *len, mp_obj_t **items) {
381381
mp_raise_TypeError(translate("expected tuple/list"));
382382
} else {
383383
mp_raise_TypeError_varg(
384-
translate("object '%s' is not a tuple or list"), mp_obj_get_type_str(o));
384+
translate("object '%q' is not a tuple or list"), mp_obj_get_type_qstr(o));
385385
}
386386
}
387387
}
@@ -410,8 +410,8 @@ size_t mp_get_index(const mp_obj_type_t *type, size_t len, mp_obj_t index, bool
410410
mp_raise_TypeError(translate("indices must be integers"));
411411
} else {
412412
mp_raise_TypeError_varg(
413-
translate("%q indices must be integers, not %s"),
414-
type->name, mp_obj_get_type_str(index));
413+
translate("%q indices must be integers, not %q"),
414+
type->name, mp_obj_get_type_qstr(index));
415415
}
416416
}
417417

@@ -465,7 +465,7 @@ mp_obj_t mp_obj_len(mp_obj_t o_in) {
465465
mp_raise_TypeError(translate("object has no len"));
466466
} else {
467467
mp_raise_TypeError_varg(
468-
translate("object of type '%s' has no len()"), mp_obj_get_type_str(o_in));
468+
translate("object of type '%q' has no len()"), mp_obj_get_type_qstr(o_in));
469469
}
470470
} else {
471471
return len;
@@ -508,21 +508,21 @@ mp_obj_t mp_obj_subscr(mp_obj_t base, mp_obj_t index, mp_obj_t value) {
508508
mp_raise_TypeError(translate("object does not support item deletion"));
509509
} else {
510510
mp_raise_TypeError_varg(
511-
translate("'%s' object does not support item deletion"), mp_obj_get_type_str(base));
511+
translate("'%q' object does not support item deletion"), mp_obj_get_type_qstr(base));
512512
}
513513
} else if (value == MP_OBJ_SENTINEL) {
514514
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
515515
mp_raise_TypeError(translate("object is not subscriptable"));
516516
} else {
517517
mp_raise_TypeError_varg(
518-
translate("'%s' object is not subscriptable"), mp_obj_get_type_str(base));
518+
translate("'%q' object is not subscriptable"), mp_obj_get_type_qstr(base));
519519
}
520520
} else {
521521
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
522522
mp_raise_TypeError(translate("object does not support item assignment"));
523523
} else {
524524
mp_raise_TypeError_varg(
525-
translate("'%s' object does not support item assignment"), mp_obj_get_type_str(base));
525+
translate("'%q' object does not support item assignment"), mp_obj_get_type_qstr(base));
526526
}
527527
}
528528
}

py/objstr.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1280,8 +1280,8 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
12801280
terse_str_format_value_error();
12811281
} else {
12821282
mp_raise_ValueError_varg(
1283-
translate("unknown format code '%c' for object of type '%s'"),
1284-
type, mp_obj_get_type_str(arg));
1283+
translate("unknown format code '%c' for object of type '%q'"),
1284+
type, mp_obj_get_type_qstr(arg));
12851285
}
12861286
}
12871287
}
@@ -1352,8 +1352,8 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
13521352
terse_str_format_value_error();
13531353
} else {
13541354
mp_raise_ValueError_varg(
1355-
translate("unknown format code '%c' for object of type '%s'"),
1356-
type, mp_obj_get_type_str(arg));
1355+
translate("unknown format code '%c' for object of type '%q'"),
1356+
type, mp_obj_get_type_qstr(arg));
13571357
}
13581358
}
13591359
} else {
@@ -1388,8 +1388,8 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
13881388
terse_str_format_value_error();
13891389
} else {
13901390
mp_raise_ValueError_varg(
1391-
translate("unknown format code '%c' for object of type '%s'"),
1392-
type, mp_obj_get_type_str(arg));
1391+
translate("unknown format code '%c' for object of type '%q'"),
1392+
type, mp_obj_get_type_qstr(arg));
13931393
}
13941394
}
13951395
}
@@ -2133,7 +2133,7 @@ STATIC NORETURN void bad_implicit_conversion(mp_obj_t self_in) {
21332133
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
21342134
mp_raise_TypeError(translate("can't convert to str implicitly"));
21352135
} else {
2136-
const qstr src_name = mp_obj_get_type(self_in)->name;
2136+
const qstr src_name = mp_obj_get_type_qstr(self_in);
21372137
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError,
21382138
translate("can't convert '%q' object to %q implicitly"),
21392139
src_name, src_name == MP_QSTR_str ? MP_QSTR_bytes : MP_QSTR_str));

py/objstrunicode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ const byte *str_index_to_ptr(const mp_obj_type_t *type, const byte *self_data, s
151151
if (MP_OBJ_IS_SMALL_INT(index)) {
152152
i = MP_OBJ_SMALL_INT_VALUE(index);
153153
} else if (!mp_obj_get_int_maybe(index, &i)) {
154-
mp_raise_TypeError_varg(translate("string indices must be integers, not %s"), mp_obj_get_type_str(index));
154+
mp_raise_TypeError_varg(translate("string indices must be integers, not %q"), mp_obj_get_type_qstr(index));
155155
}
156156
const byte *s, *top = self_data + self_len;
157157
if (i < 0)

py/objtype.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ STATIC void mp_obj_class_lookup(struct class_lookup_data *lookup, const mp_obj_
193193
printf("mp_obj_class_lookup: Returning: ");
194194
mp_obj_print(lookup->dest[0], PRINT_REPR); printf(" ");
195195
// Don't try to repr() lookup->dest[1], as we can be called recursively
196-
printf("<%s @%p>\n", mp_obj_get_type_str(lookup->dest[1]), lookup->dest[1]);
196+
printf("<%q @%p>\n", mp_obj_get_type_qstr(lookup->dest[1]), lookup->dest[1]);
197197
#endif
198198
return;
199199
}
@@ -285,7 +285,7 @@ STATIC void instance_print(const mp_print_t *print, mp_obj_t self_in, mp_print_k
285285
}
286286

287287
// TODO: CPython prints fully-qualified type name
288-
mp_printf(print, "<%s object at %p>", mp_obj_get_type_str(self_in), self);
288+
mp_printf(print, "<%q object at %p>", mp_obj_get_type_qstr(self_in), self);
289289
}
290290

291291
mp_obj_t mp_obj_instance_make_new(const mp_obj_type_t *self, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
@@ -376,8 +376,8 @@ mp_obj_t mp_obj_instance_make_new(const mp_obj_type_t *self, size_t n_args, cons
376376
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
377377
mp_raise_TypeError(translate("__init__() should return None"));
378378
} else {
379-
mp_raise_TypeError_varg(translate("__init__() should return None, not '%s'"),
380-
mp_obj_get_type_str(init_ret));
379+
mp_raise_TypeError_varg(translate("__init__() should return None, not '%q'"),
380+
mp_obj_get_type_qstr(init_ret));
381381
}
382382
}
383383

@@ -891,8 +891,8 @@ mp_obj_t mp_obj_instance_call(mp_obj_t self_in, size_t n_args, size_t n_kw, cons
891891
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
892892
mp_raise_TypeError(translate("object not callable"));
893893
} else {
894-
mp_raise_TypeError_varg(translate("'%s' object is not callable"),
895-
mp_obj_get_type_str(self_in));
894+
mp_raise_TypeError_varg(translate("'%q' object is not callable"),
895+
mp_obj_get_type_qstr(self_in));
896896
}
897897
}
898898
mp_obj_instance_t *self = MP_OBJ_TO_PTR(self_in);

py/proto.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ const void *mp_proto_get_or_throw(uint16_t name, mp_const_obj_t obj) {
4545
if (proto) {
4646
return proto;
4747
}
48-
mp_raise_TypeError_varg(translate("'%s' object does not support '%q'"),
49-
mp_obj_get_type_str(obj), name);
48+
mp_raise_TypeError_varg(translate("'%q' object does not support '%q'"),
49+
mp_obj_get_type_qstr(obj), name);
5050
}

py/runtime.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,8 @@ mp_obj_t mp_unary_op(mp_unary_op_t op, mp_obj_t arg) {
279279
mp_raise_TypeError(translate("unsupported type for operator"));
280280
} else {
281281
mp_raise_TypeError_varg(
282-
translate("unsupported type for %q: '%s'"),
283-
mp_unary_op_method_name[op], mp_obj_get_type_str(arg));
282+
translate("unsupported type for %q: '%q'"),
283+
mp_unary_op_method_name[op], mp_obj_get_type_qstr(arg));
284284
}
285285
}
286286
}
@@ -586,8 +586,8 @@ mp_obj_t PLACE_IN_ITCM(mp_binary_op)(mp_binary_op_t op, mp_obj_t lhs, mp_obj_t r
586586
mp_raise_TypeError(translate("unsupported type for operator"));
587587
} else {
588588
mp_raise_TypeError_varg(
589-
translate("unsupported types for %q: '%s', '%s'"),
590-
mp_binary_op_method_name[op], mp_obj_get_type_str(lhs), mp_obj_get_type_str(rhs));
589+
translate("unsupported types for %q: '%q', '%q'"),
590+
mp_binary_op_method_name[op], mp_obj_get_type_qstr(lhs), mp_obj_get_type_qstr(rhs));
591591
}
592592

593593
zero_division:
@@ -627,7 +627,7 @@ mp_obj_t mp_call_function_n_kw(mp_obj_t fun_in, size_t n_args, size_t n_kw, cons
627627
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
628628
mp_raise_TypeError(translate("object not callable"));
629629
} else {
630-
mp_raise_TypeError_varg(translate("'%s' object is not callable"), mp_obj_get_type_str(fun_in));
630+
mp_raise_TypeError_varg(translate("'%q' object is not callable"), mp_obj_get_type_qstr(fun_in));
631631
}
632632
}
633633

@@ -1104,8 +1104,8 @@ void mp_load_method(mp_obj_t base, qstr attr, mp_obj_t *dest) {
11041104
((mp_obj_type_t*)MP_OBJ_TO_PTR(base))->name, attr));
11051105
} else {
11061106
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_AttributeError,
1107-
translate("'%s' object has no attribute '%q'"),
1108-
mp_obj_get_type_str(base), attr));
1107+
translate("'%q' object has no attribute '%q'"),
1108+
mp_obj_get_type_qstr(base), attr));
11091109
}
11101110
}
11111111
}
@@ -1172,8 +1172,8 @@ void mp_store_attr(mp_obj_t base, qstr attr, mp_obj_t value) {
11721172
mp_raise_AttributeError(translate("no such attribute"));
11731173
} else {
11741174
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_AttributeError,
1175-
translate("'%s' object cannot assign attribute '%q'"),
1176-
mp_obj_get_type_str(base), attr));
1175+
translate("'%q' object cannot assign attribute '%q'"),
1176+
mp_obj_get_type_qstr(base), attr));
11771177
}
11781178
}
11791179

@@ -1213,7 +1213,7 @@ mp_obj_t mp_getiter(mp_obj_t o_in, mp_obj_iter_buf_t *iter_buf) {
12131213
mp_raise_TypeError(translate("object not iterable"));
12141214
} else {
12151215
mp_raise_TypeError_varg(
1216-
translate("'%s' object is not iterable"), mp_obj_get_type_str(o_in));
1216+
translate("'%q' object is not iterable"), mp_obj_get_type_qstr(o_in));
12171217
}
12181218
}
12191219

@@ -1234,8 +1234,8 @@ mp_obj_t mp_iternext_allow_raise(mp_obj_t o_in) {
12341234
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
12351235
mp_raise_TypeError(translate("object not an iterator"));
12361236
} else {
1237-
mp_raise_TypeError_varg(translate("'%s' object is not an iterator"),
1238-
mp_obj_get_type_str(o_in));
1237+
mp_raise_TypeError_varg(translate("'%q' object is not an iterator"),
1238+
mp_obj_get_type_qstr(o_in));
12391239
}
12401240
}
12411241
}
@@ -1270,8 +1270,8 @@ mp_obj_t mp_iternext(mp_obj_t o_in) {
12701270
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
12711271
mp_raise_TypeError(translate("object not an iterator"));
12721272
} else {
1273-
mp_raise_TypeError_varg(translate("'%s' object is not an iterator"),
1274-
mp_obj_get_type_str(o_in));
1273+
mp_raise_TypeError_varg(translate("'%q' object is not an iterator"),
1274+
mp_obj_get_type_qstr(o_in));
12751275
}
12761276
}
12771277
}

0 commit comments

Comments
 (0)