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)
|
#define MICROPY_CPYTHON_COMPAT (1)
|
||||||
#endif
|
#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
|
// Whether POSIX-semantics non-blocking streams are supported
|
||||||
#ifndef MICROPY_STREAMS_NON_BLOCK
|
#ifndef MICROPY_STREAMS_NON_BLOCK
|
||||||
#define MICROPY_STREAMS_NON_BLOCK (0)
|
#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;
|
mp_obj_t item;
|
||||||
while ((item = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
while ((item = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
||||||
mp_int_t val = mp_obj_get_int(item);
|
mp_int_t val = mp_obj_get_int(item);
|
||||||
#if MICROPY_CPYTHON_COMPAT
|
#if MICROPY_FULL_CHECKS
|
||||||
if (val < 0 || val > 255) {
|
if (val < 0 || val > 255) {
|
||||||
mp_raise_ValueError("bytes value out of range");
|
mp_raise_ValueError("bytes value out of range");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user