From f3de62e6c248a4ac6db9e68ed9534e0ec1093a2e Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Thu, 26 Jun 2014 00:41:08 +0300
Subject: [PATCH] binary: machine_uint_t vs uint dichotomy starts doing real
 damage.

---
 py/binary.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/py/binary.c b/py/binary.c
index bc06f9b6f..d755bc86e 100644
--- a/py/binary.c
+++ b/py/binary.c
@@ -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);
     if (struct_type == '@') {
         // 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
         struct_type = '<';
         #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);
     if (struct_type == '@') {
         // 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
         struct_type = '<';
         #else
-- 
GitLab