Skip to content

Commit 9e215fa

Browse files
committed
py: Make unichar_charlen() accept/return machine_uint_t.
1 parent a62da51 commit 9e215fa

5 files changed

Lines changed: 7 additions & 7 deletions

File tree

py/builtin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ STATIC mp_obj_t mp_builtin_ord(mp_obj_t o_in) {
372372
uint len;
373373
const char *str = mp_obj_str_get_data(o_in, &len);
374374
#if MICROPY_PY_BUILTINS_STR_UNICODE
375-
uint charlen = unichar_charlen(str, len);
375+
machine_uint_t charlen = unichar_charlen(str, len);
376376
if (charlen == 1) {
377377
if (MP_OBJ_IS_STR(o_in) && UTF8_IS_NONASCII(*str)) {
378378
machine_int_t ord = *str++ & 0x7F;

py/misc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ bool unichar_isupper(unichar c);
100100
bool unichar_islower(unichar c);
101101
unichar unichar_tolower(unichar c);
102102
unichar unichar_toupper(unichar c);
103-
uint unichar_charlen(const char *str, uint len); // TODO this should return machine_uint_t
103+
machine_uint_t unichar_charlen(const char *str, machine_uint_t len);
104104
#define UTF8_IS_NONASCII(ch) ((ch) & 0x80)
105105
#define UTF8_IS_CONT(ch) (((ch) & 0xC0) == 0x80)
106106

py/objstr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@ STATIC mp_obj_t str_count(uint n_args, const mp_obj_t *args) {
14481448

14491449
// if needle_len is zero then we count each gap between characters as an occurrence
14501450
if (needle_len == 0) {
1451-
return MP_OBJ_NEW_SMALL_INT((machine_uint_t)unichar_charlen((const char*)start, end - start) + 1);
1451+
return MP_OBJ_NEW_SMALL_INT(unichar_charlen((const char*)start, end - start) + 1);
14521452
}
14531453

14541454
// count the occurrences

py/objstrunicode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ STATIC mp_obj_t uni_unary_op(int op, mp_obj_t self_in) {
106106
case MP_UNARY_OP_BOOL:
107107
return MP_BOOL(str_len != 0);
108108
case MP_UNARY_OP_LEN:
109-
return MP_OBJ_NEW_SMALL_INT((machine_int_t)unichar_charlen((const char *)str_data, str_len));
109+
return MP_OBJ_NEW_SMALL_INT(unichar_charlen((const char *)str_data, str_len));
110110
default:
111111
return MP_OBJ_NULL; // op not supported
112112
}

py/unicode.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ machine_uint_t utf8_ptr_to_index(const char *s, const char *ptr) {
107107
return i;
108108
}
109109

110-
// TODO: Rename to str_charlen; return machine_uint_t
111-
uint unichar_charlen(const char *str, uint len)
110+
// TODO: Rename to str_charlen
111+
machine_uint_t unichar_charlen(const char *str, machine_uint_t len)
112112
{
113113
#if MICROPY_PY_BUILTINS_STR_UNICODE
114-
uint charlen = 0;
114+
machine_uint_t charlen = 0;
115115
for (const char *top = str + len; str < top; ++str) {
116116
if (!UTF8_IS_CONT(*str)) {
117117
++charlen;

0 commit comments

Comments
 (0)