py/objstr: Use MICROPY_FULL_CHECKS for range checking when constructing bytes.
Split this setting from MICROPY_CPYTHON_COMPAT. The idea is to be able to keep MICROPY_CPYTHON_COMPAT disabled, but still pass more of regression testsuite. In particular, this fixes last failing test in basics/ for Zephyr port.
This commit is contained in:
parent
5b2db4bb51
commit
9a973977bb
|
@ -556,6 +556,15 @@ typedef double mp_float_t;
|
|||
#define MICROPY_CPYTHON_COMPAT (1)
|
||||
#endif
|
||||
|
||||
// Perform full checks as done by CPython. Disabling this
|
||||
// may produce incorrect results, if incorrect data is fed,
|
||||
// but should not lead to MicroPython crashes or similar
|
||||
// grave issues (in other words, only user app should be,
|
||||
// affected, not system).
|
||||
#ifndef MICROPY_FULL_CHECKS
|
||||
#define MICROPY_FULL_CHECKS (1)
|
||||
#endif
|
||||
|
||||
// Whether POSIX-semantics non-blocking streams are supported
|
||||
#ifndef MICROPY_STREAMS_NON_BLOCK
|
||||
#define MICROPY_STREAMS_NON_BLOCK (0)
|
||||
|
|
|
@ -236,7 +236,7 @@ STATIC mp_obj_t bytes_make_new(const mp_obj_type_t *type_in, size_t n_args, size
|
|||
mp_obj_t item;
|
||||
while ((item = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
||||
mp_int_t val = mp_obj_get_int(item);
|
||||
#if MICROPY_CPYTHON_COMPAT
|
||||
#if MICROPY_FULL_CHECKS
|
||||
if (val < 0 || val > 255) {
|
||||
mp_raise_ValueError("bytes value out of range");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue