objstr: Fix bytes creation from array of long ints.

This commit is contained in:
Paul Sokolovsky 2015-02-09 12:11:49 +08:00
parent 28631537bd
commit 194117a066
2 changed files with 4 additions and 1 deletions

View File

@ -223,7 +223,7 @@ STATIC mp_obj_t bytes_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k
mp_obj_t iterable = mp_getiter(args[0]); mp_obj_t iterable = mp_getiter(args[0]);
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) {
vstr_add_byte(&vstr, MP_OBJ_SMALL_INT_VALUE(item)); vstr_add_byte(&vstr, mp_obj_get_int(item));
} }
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr); return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);

View File

@ -11,3 +11,6 @@ print(bytes(bytearray(4)))
print(bytes(array('b', [1, 2]))) print(bytes(array('b', [1, 2])))
print(bytes(array('h', [1, 2]))) print(bytes(array('h', [1, 2])))
print(bytes(array('I', [1, 2]))) print(bytes(array('I', [1, 2])))
# long ints
print(ord(bytes([14953042807679334000 & 0xff])))