py/objstr: Make empty bytes object have a null-terminating byte.
Because a lot of string processing functions assume there is a null terminating byte, so they can work in an efficient way. Fixes issue #3334.
This commit is contained in:
parent
a3dc1b1957
commit
dfa563c71f
@ -1973,8 +1973,8 @@ const mp_obj_type_t mp_type_bytes = {
|
||||
.locals_dict = (mp_obj_dict_t*)&str8_locals_dict,
|
||||
};
|
||||
|
||||
// the zero-length bytes
|
||||
const mp_obj_str_t mp_const_empty_bytes_obj = {{&mp_type_bytes}, 0, 0, NULL};
|
||||
// The zero-length bytes object, with data that includes a null-terminating byte
|
||||
const mp_obj_str_t mp_const_empty_bytes_obj = {{&mp_type_bytes}, 0, 0, (const byte*)""};
|
||||
|
||||
// Create a str/bytes object using the given data. New memory is allocated and
|
||||
// the data is copied across.
|
||||
|
@ -8,6 +8,9 @@ print(b'\u1234')
|
||||
print(bytes())
|
||||
print(bytes(b'abc'))
|
||||
|
||||
# make sure empty bytes is converted correctly
|
||||
print(str(bytes(), 'utf-8'))
|
||||
|
||||
a = b"123"
|
||||
print(a)
|
||||
print(str(a))
|
||||
|
Loading…
Reference in New Issue
Block a user