py/objint_longlong: Implement mp_obj_int_from_bytes_impl().

This makes int.from_bytes() work for MICROPY_LONGINT_IMPL_LONGLONG.
This commit is contained in:
Paul Sokolovsky 2017-03-10 00:22:53 +01:00
parent bc5bffbf65
commit 776883cb80
1 changed files with 11 additions and 1 deletions

View File

@ -54,7 +54,17 @@ const mp_obj_int_t mp_maxsize_obj = {{&mp_type_int}, MP_SSIZE_MAX};
#endif
mp_obj_t mp_obj_int_from_bytes_impl(bool big_endian, size_t len, const byte *buf) {
mp_not_implemented("");
int delta = 1;
if (!big_endian) {
buf += len - 1;
delta = -1;
}
mp_longint_impl_t value = 0;
for (; len--; buf += delta) {
value = (value << 8) | *buf;
}
return mp_obj_new_int_from_ll(value);
}
void mp_obj_int_to_bytes_impl(mp_obj_t self_in, bool big_endian, size_t len, byte *buf) {