Commit 2617eebf authored by Damien George's avatar Damien George
Browse files

Change const byte* to const char* where sensible.

This removes need for some casts (at least, more than it adds need
for new casts!).
parent f88fc7bd
...@@ -172,7 +172,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_builtin_callable_obj, mp_builtin_callable); ...@@ -172,7 +172,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_builtin_callable_obj, mp_builtin_callable);
STATIC mp_obj_t mp_builtin_chr(mp_obj_t o_in) { STATIC mp_obj_t mp_builtin_chr(mp_obj_t o_in) {
int ord = mp_obj_get_int(o_in); int ord = mp_obj_get_int(o_in);
if (0 <= ord && ord <= 0x10ffff) { if (0 <= ord && ord <= 0x10ffff) {
byte str[1] = {ord}; char str[1] = {ord};
return mp_obj_new_str(str, 1, true); return mp_obj_new_str(str, 1, true);
} else { } else {
nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "chr() arg not in range(0x110000)")); nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "chr() arg not in range(0x110000)"));
...@@ -391,7 +391,7 @@ MP_DEFINE_CONST_FUN_OBJ_KW(mp_builtin_print_obj, 0, mp_builtin_print); ...@@ -391,7 +391,7 @@ MP_DEFINE_CONST_FUN_OBJ_KW(mp_builtin_print_obj, 0, mp_builtin_print);
STATIC mp_obj_t mp_builtin_repr(mp_obj_t o_in) { STATIC mp_obj_t mp_builtin_repr(mp_obj_t o_in) {
vstr_t *vstr = vstr_new(); vstr_t *vstr = vstr_new();
mp_obj_print_helper((void (*)(void *env, const char *fmt, ...))vstr_printf, vstr, o_in, PRINT_REPR); mp_obj_print_helper((void (*)(void *env, const char *fmt, ...))vstr_printf, vstr, o_in, PRINT_REPR);
mp_obj_t s = mp_obj_new_str((byte*)vstr->buf, vstr->len, false); mp_obj_t s = mp_obj_new_str(vstr->buf, vstr->len, false);
vstr_free(vstr); vstr_free(vstr);
return s; return s;
} }
......
...@@ -318,7 +318,7 @@ mp_obj_t mp_builtin___import__(uint n_args, mp_obj_t *args) { ...@@ -318,7 +318,7 @@ mp_obj_t mp_builtin___import__(uint n_args, mp_obj_t *args) {
DEBUG_printf("%s is dir\n", vstr_str(&path)); DEBUG_printf("%s is dir\n", vstr_str(&path));
// https://docs.python.org/3.3/reference/import.html // https://docs.python.org/3.3/reference/import.html
// "Specifically, any module that contains a __path__ attribute is considered a package." // "Specifically, any module that contains a __path__ attribute is considered a package."
mp_store_attr(module_obj, MP_QSTR___path__, mp_obj_new_str((byte*)vstr_str(&path), vstr_len(&path), false)); mp_store_attr(module_obj, MP_QSTR___path__, mp_obj_new_str(vstr_str(&path), vstr_len(&path), false));
vstr_add_char(&path, PATH_SEP_CHAR); vstr_add_char(&path, PATH_SEP_CHAR);
vstr_add_str(&path, "__init__.py"); vstr_add_str(&path, "__init__.py");
if (mp_import_stat(vstr_str(&path)) != MP_IMPORT_STAT_FILE) { if (mp_import_stat(vstr_str(&path)) != MP_IMPORT_STAT_FILE) {
......
...@@ -373,7 +373,7 @@ mp_obj_t mp_obj_new_int(machine_int_t value); ...@@ -373,7 +373,7 @@ mp_obj_t mp_obj_new_int(machine_int_t value);
mp_obj_t mp_obj_new_int_from_uint(machine_uint_t value); mp_obj_t mp_obj_new_int_from_uint(machine_uint_t value);
mp_obj_t mp_obj_new_int_from_qstr(qstr qst); mp_obj_t mp_obj_new_int_from_qstr(qstr qst);
mp_obj_t mp_obj_new_int_from_ll(long long val); // this must return a multi-precision integer object (or raise an overflow exception) mp_obj_t mp_obj_new_int_from_ll(long long val); // this must return a multi-precision integer object (or raise an overflow exception)
mp_obj_t mp_obj_new_str(const byte* data, uint len, bool make_qstr_if_not_already); mp_obj_t mp_obj_new_str(const char* data, uint len, bool make_qstr_if_not_already);
mp_obj_t mp_obj_new_bytes(const byte* data, uint len); mp_obj_t mp_obj_new_bytes(const byte* data, uint len);
#if MICROPY_ENABLE_FLOAT #if MICROPY_ENABLE_FLOAT
mp_obj_t mp_obj_new_float(mp_float_t val); mp_obj_t mp_obj_new_float(mp_float_t val);
......
...@@ -283,7 +283,7 @@ mp_obj_t mp_obj_new_exception_msg_varg(const mp_obj_type_t *exc_type, const char ...@@ -283,7 +283,7 @@ mp_obj_t mp_obj_new_exception_msg_varg(const mp_obj_type_t *exc_type, const char
va_start(ap, fmt); va_start(ap, fmt);
vstr_vprintf(vstr, fmt, ap); vstr_vprintf(vstr, fmt, ap);
va_end(ap); va_end(ap);
o->args->items[0] = mp_obj_new_str((byte*)vstr->buf, vstr->len, false); o->args->items[0] = mp_obj_new_str(vstr->buf, vstr->len, false);
vstr_free(vstr); vstr_free(vstr);
} }
} }
......
...@@ -129,7 +129,7 @@ STATIC mp_obj_t str_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_ ...@@ -129,7 +129,7 @@ STATIC mp_obj_t str_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_
{ {
vstr_t *vstr = vstr_new(); vstr_t *vstr = vstr_new();
mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, vstr, args[0], PRINT_STR); mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, vstr, args[0], PRINT_STR);
mp_obj_t s = mp_obj_new_str((byte*)vstr->buf, vstr->len, false); mp_obj_t s = mp_obj_new_str(vstr->buf, vstr->len, false);
vstr_free(vstr); vstr_free(vstr);
return s; return s;
} }
...@@ -363,7 +363,7 @@ STATIC mp_obj_t str_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) { ...@@ -363,7 +363,7 @@ STATIC mp_obj_t str_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
if (type == &mp_type_bytes) { if (type == &mp_type_bytes) {
return MP_OBJ_NEW_SMALL_INT((mp_small_int_t)self_data[index_val]); return MP_OBJ_NEW_SMALL_INT((mp_small_int_t)self_data[index_val]);
} else { } else {
return mp_obj_new_str(self_data + index_val, 1, true); return mp_obj_new_str((char*)self_data + index_val, 1, true);
} }
} else { } else {
return MP_OBJ_NULL; // op not supported return MP_OBJ_NULL; // op not supported
...@@ -873,7 +873,7 @@ mp_obj_t mp_obj_str_format(uint n_args, const mp_obj_t *args) { ...@@ -873,7 +873,7 @@ mp_obj_t mp_obj_str_format(uint n_args, const mp_obj_t *args) {
} }
vstr_t *arg_vstr = vstr_new(); vstr_t *arg_vstr = vstr_new();
mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, arg_vstr, arg, print_kind); mp_obj_print_helper((void (*)(void*, const char*, ...))vstr_printf, arg_vstr, arg, print_kind);
arg = mp_obj_new_str((const byte *)vstr_str(arg_vstr), vstr_len(arg_vstr), false); arg = mp_obj_new_str(vstr_str(arg_vstr), vstr_len(arg_vstr), false);
vstr_free(arg_vstr); vstr_free(arg_vstr);
} }
...@@ -1116,7 +1116,7 @@ mp_obj_t mp_obj_str_format(uint n_args, const mp_obj_t *args) { ...@@ -1116,7 +1116,7 @@ mp_obj_t mp_obj_str_format(uint n_args, const mp_obj_t *args) {
} }
} }
mp_obj_t s = mp_obj_new_str((byte*)vstr->buf, vstr->len, false); mp_obj_t s = mp_obj_new_str(vstr->buf, vstr->len, false);
vstr_free(vstr); vstr_free(vstr);
return s; return s;
} }
...@@ -1287,7 +1287,7 @@ STATIC mp_obj_t str_modulo_format(mp_obj_t pattern, uint n_args, const mp_obj_t ...@@ -1287,7 +1287,7 @@ STATIC mp_obj_t str_modulo_format(mp_obj_t pattern, uint n_args, const mp_obj_t
nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError, "not all arguments converted during string formatting")); nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError, "not all arguments converted during string formatting"));
} }
mp_obj_t s = mp_obj_new_str((byte*)vstr->buf, vstr->len, false); mp_obj_t s = mp_obj_new_str(vstr->buf, vstr->len, false);
vstr_free(vstr); vstr_free(vstr);
return s; return s;
} }
...@@ -1655,17 +1655,17 @@ mp_obj_t str_new(const mp_obj_type_t *type, const byte* data, uint len) { ...@@ -1655,17 +1655,17 @@ mp_obj_t str_new(const mp_obj_type_t *type, const byte* data, uint len) {
return o; return o;
} }
mp_obj_t mp_obj_new_str(const byte* data, uint len, bool make_qstr_if_not_already) { mp_obj_t mp_obj_new_str(const char* data, uint len, bool make_qstr_if_not_already) {
qstr q = qstr_find_strn(data, len); qstr q = qstr_find_strn(data, len);
if (q != MP_QSTR_NULL) { if (q != MP_QSTR_NULL) {
// qstr with this data already exists // qstr with this data already exists
return MP_OBJ_NEW_QSTR(q); return MP_OBJ_NEW_QSTR(q);
} else if (make_qstr_if_not_already) { } else if (make_qstr_if_not_already) {
// no existing qstr, make a new one // no existing qstr, make a new one
return MP_OBJ_NEW_QSTR(qstr_from_strn((const char*)data, len)); return MP_OBJ_NEW_QSTR(qstr_from_strn(data, len));
} else { } else {
// no existing qstr, don't make one // no existing qstr, don't make one
return str_new(&mp_type_str, data, len); return str_new(&mp_type_str, (const byte*)data, len);
} }
} }
...@@ -1768,7 +1768,7 @@ STATIC mp_obj_t str_it_iternext(mp_obj_t self_in) { ...@@ -1768,7 +1768,7 @@ STATIC mp_obj_t str_it_iternext(mp_obj_t self_in) {
mp_obj_str_it_t *self = self_in; mp_obj_str_it_t *self = self_in;
GET_STR_DATA_LEN(self->str, str, len); GET_STR_DATA_LEN(self->str, str, len);
if (self->cur < len) { if (self->cur < len) {
mp_obj_t o_out = mp_obj_new_str(str + self->cur, 1, true); mp_obj_t o_out = mp_obj_new_str((const char*)str + self->cur, 1, true);
self->cur += 1; self->cur += 1;
return o_out; return o_out;
} else { } else {
......
...@@ -349,7 +349,7 @@ STATIC void push_result_token(parser_t *parser, const mp_lexer_t *lex) { ...@@ -349,7 +349,7 @@ STATIC void push_result_token(parser_t *parser, const mp_lexer_t *lex) {
qst = qstr_from_strn(tok->str, tok->len); qst = qstr_from_strn(tok->str, tok->len);
} else { } else {
// check if this string is already interned // check if this string is already interned
qst = qstr_find_strn((const byte*)tok->str, tok->len); qst = qstr_find_strn(tok->str, tok->len);
} }
if (qst != MP_QSTR_NULL) { if (qst != MP_QSTR_NULL) {
// qstr exists, make a leaf node // qstr exists, make a leaf node
......
...@@ -130,7 +130,7 @@ STATIC qstr qstr_add(const byte *q_ptr) { ...@@ -130,7 +130,7 @@ STATIC qstr qstr_add(const byte *q_ptr) {
return last_pool->total_prev_len + last_pool->len - 1; return last_pool->total_prev_len + last_pool->len - 1;
} }
qstr qstr_find_strn(const byte *str, uint str_len) { qstr qstr_find_strn(const char *str, uint str_len) {
// work out hash of str // work out hash of str
machine_uint_t str_hash = qstr_compute_hash((const byte*)str, str_len); machine_uint_t str_hash = qstr_compute_hash((const byte*)str, str_len);
...@@ -152,7 +152,7 @@ qstr qstr_from_str(const char *str) { ...@@ -152,7 +152,7 @@ qstr qstr_from_str(const char *str) {
} }
qstr qstr_from_strn(const char *str, uint len) { qstr qstr_from_strn(const char *str, uint len) {
qstr q = qstr_find_strn((const byte*)str, len); qstr q = qstr_find_strn(str, len);
if (q == 0) { if (q == 0) {
machine_uint_t hash = qstr_compute_hash((const byte*)str, len); machine_uint_t hash = qstr_compute_hash((const byte*)str, len);
byte *q_ptr = m_new(byte, 4 + len + 1); byte *q_ptr = m_new(byte, 4 + len + 1);
...@@ -167,12 +167,6 @@ qstr qstr_from_strn(const char *str, uint len) { ...@@ -167,12 +167,6 @@ qstr qstr_from_strn(const char *str, uint len) {
return q; return q;
} }
qstr qstr_from_strn_take(char *str, uint alloc_len, uint len) {
qstr q = qstr_from_strn(str, len);
m_del(char, str, alloc_len);
return q;
}
byte *qstr_build_start(uint len, byte **q_ptr) { byte *qstr_build_start(uint len, byte **q_ptr) {
assert(len <= 65535); assert(len <= 65535);
*q_ptr = m_new(byte, 4 + len + 1); *q_ptr = m_new(byte, 4 + len + 1);
...@@ -182,7 +176,7 @@ byte *qstr_build_start(uint len, byte **q_ptr) { ...@@ -182,7 +176,7 @@ byte *qstr_build_start(uint len, byte **q_ptr) {
} }
qstr qstr_build_end(byte *q_ptr) { qstr qstr_build_end(byte *q_ptr) {
qstr q = qstr_find_strn(Q_GET_DATA(q_ptr), Q_GET_LENGTH(q_ptr)); qstr q = qstr_find_strn((const char*)Q_GET_DATA(q_ptr), Q_GET_LENGTH(q_ptr));
if (q == 0) { if (q == 0) {
machine_uint_t len = Q_GET_LENGTH(q_ptr); machine_uint_t len = Q_GET_LENGTH(q_ptr);
machine_uint_t hash = qstr_compute_hash(Q_GET_DATA(q_ptr), len); machine_uint_t hash = qstr_compute_hash(Q_GET_DATA(q_ptr), len);
......
...@@ -46,12 +46,11 @@ typedef machine_uint_t qstr; ...@@ -46,12 +46,11 @@ typedef machine_uint_t qstr;
void qstr_init(void); void qstr_init(void);
machine_uint_t qstr_compute_hash(const byte *data, uint len); machine_uint_t qstr_compute_hash(const byte *data, uint len);
qstr qstr_find_strn(const byte *str, uint str_len); // returns MP_QSTR_NULL if not found qstr qstr_find_strn(const char *str, uint str_len); // returns MP_QSTR_NULL if not found
qstr qstr_from_str(const char *str); qstr qstr_from_str(const char *str);
qstr qstr_from_strn(const char *str, uint len); qstr qstr_from_strn(const char *str, uint len);
//qstr qstr_from_str_static(const char *str); //qstr qstr_from_str_static(const char *str);
qstr qstr_from_strn_take(char *str, uint alloc_len, uint len);
//qstr qstr_from_strn_copy(const char *str, int len); //qstr qstr_from_strn_copy(const char *str, int len);
byte* qstr_build_start(uint len, byte **q_ptr); byte* qstr_build_start(uint len, byte **q_ptr);
......
...@@ -44,7 +44,7 @@ STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) { ...@@ -44,7 +44,7 @@ STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) {
if (line.len == 0 && ret == VCP_CHAR_CTRL_D) { if (line.len == 0 && ret == VCP_CHAR_CTRL_D) {
nlr_raise(mp_obj_new_exception(&mp_type_EOFError)); nlr_raise(mp_obj_new_exception(&mp_type_EOFError));
} }
mp_obj_t o = mp_obj_new_str((const byte*)line.buf, line.len, false); mp_obj_t o = mp_obj_new_str(line.buf, line.len, false);
vstr_clear(&line); vstr_clear(&line);
return o; return o;
} }
......
...@@ -77,7 +77,7 @@ STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) { ...@@ -77,7 +77,7 @@ STATIC mp_obj_t mp_builtin_input(uint n_args, const mp_obj_t *args) {
if (line == NULL) { if (line == NULL) {
nlr_raise(mp_obj_new_exception(&mp_type_EOFError)); nlr_raise(mp_obj_new_exception(&mp_type_EOFError));
} }
mp_obj_t o = mp_obj_new_str((const byte*)line, strlen(line), false); mp_obj_t o = mp_obj_new_str(line, strlen(line), false);
free(line); free(line);
return o; return o;
} }
......
...@@ -134,7 +134,7 @@ STATIC mp_obj_t return_ffi_value(ffi_arg val, char type) ...@@ -134,7 +134,7 @@ STATIC mp_obj_t return_ffi_value(ffi_arg val, char type)
switch (type) { switch (type) {
case 's': { case 's': {
const char *s = (const char *)val; const char *s = (const char *)val;
return mp_obj_new_str((const byte *)s, strlen(s), false); return mp_obj_new_str(s, strlen(s), false);
} }
case 'v': case 'v':
return mp_const_none; return mp_const_none;
......
...@@ -167,8 +167,9 @@ STATIC mp_obj_t socket_recv(uint n_args, const mp_obj_t *args) { ...@@ -167,8 +167,9 @@ STATIC mp_obj_t socket_recv(uint n_args, const mp_obj_t *args) {
int out_sz = recv(self->fd, buf, sz, flags); int out_sz = recv(self->fd, buf, sz, flags);
RAISE_ERRNO(out_sz, errno); RAISE_ERRNO(out_sz, errno);
buf = m_realloc(buf, sz, out_sz); mp_obj_t ret = MP_OBJ_NEW_QSTR(qstr_from_strn(buf, out_sz));
return MP_OBJ_NEW_QSTR(qstr_from_strn_take(buf, out_sz, out_sz)); m_del(char, buf, sz);
return ret;
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_recv_obj, 2, 3, socket_recv); STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_recv_obj, 2, 3, socket_recv);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment