binary: machine_uint_t vs uint dichotomy starts doing real damage.
This commit is contained in:
parent
8e01291c18
commit
f3de62e6c2
|
@ -155,7 +155,7 @@ mp_obj_t mp_binary_get_val(char struct_type, char val_type, byte **ptr) {
|
||||||
int size = mp_binary_get_size(struct_type, val_type, &align);
|
int size = mp_binary_get_size(struct_type, val_type, &align);
|
||||||
if (struct_type == '@') {
|
if (struct_type == '@') {
|
||||||
// Make pointer aligned
|
// Make pointer aligned
|
||||||
p = (byte*)(((machine_uint_t)p + align - 1) & ~(align - 1));
|
p = (byte*)(((machine_uint_t)p + align - 1) & ~((machine_uint_t)align - 1));
|
||||||
#if MP_ENDIANNESS_LITTLE
|
#if MP_ENDIANNESS_LITTLE
|
||||||
struct_type = '<';
|
struct_type = '<';
|
||||||
#else
|
#else
|
||||||
|
@ -184,7 +184,7 @@ void mp_binary_set_val(char struct_type, char val_type, mp_obj_t val_in, byte **
|
||||||
int size = mp_binary_get_size(struct_type, val_type, &align);
|
int size = mp_binary_get_size(struct_type, val_type, &align);
|
||||||
if (struct_type == '@') {
|
if (struct_type == '@') {
|
||||||
// Make pointer aligned
|
// Make pointer aligned
|
||||||
p = (byte*)(((machine_uint_t)p + align - 1) & ~(align - 1));
|
p = (byte*)(((machine_uint_t)p + align - 1) & ~((machine_uint_t)align - 1));
|
||||||
#if MP_ENDIANNESS_LITTLE
|
#if MP_ENDIANNESS_LITTLE
|
||||||
struct_type = '<';
|
struct_type = '<';
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue