diff options
| author | Scott Shawcroft <scott.shawcroft@gmail.com> | 2016-11-28 19:57:05 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott.shawcroft@gmail.com> | 2016-11-28 19:57:05 -0800 |
| commit | d2aa05a9fe490cad54f6860eb7e59bcb76c57899 (patch) | |
| tree | 43200d38377934c827d2c28397327d9f17162dd8 /shared-bindings | |
| parent | bda6ee9a144b47784a8596951c30d5cbbad3cbd6 (diff) | |
shared-bindings: Stop using negative length at all. Having uint and int mixed is confusing.
Diffstat (limited to 'shared-bindings')
| -rw-r--r-- | shared-bindings/nativeio/I2C.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/shared-bindings/nativeio/I2C.c b/shared-bindings/nativeio/I2C.c index 17065de71..667b832b0 100644 --- a/shared-bindings/nativeio/I2C.c +++ b/shared-bindings/nativeio/I2C.c @@ -146,17 +146,17 @@ STATIC mp_obj_t nativeio_i2c_readfrom_into(size_t n_args, const mp_obj_t *pos_ar mp_buffer_info_t bufinfo; mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_WRITE); - int32_t end = args[ARG_end].u_int; + uint32_t end = args[ARG_end].u_int; if (end < 0) { end += bufinfo.len; } - uint32_t len = end - args[ARG_start].u_int; - if (len > (int32_t) bufinfo.len) { - len = bufinfo.len; - } else if (len < 0) { + uint32_t start = args[ARG_start].u_int; + uint32_t len = end - start; + if (end < start) { len = 0; + } else if (len > bufinfo.len) { + len = bufinfo.len; } - int32_t start = args[ARG_start].u_int; common_hal_nativeio_i2c_read(self, args[ARG_address].u_int, ((uint8_t*)bufinfo.buf) + start, len); return mp_const_none; } @@ -195,17 +195,17 @@ STATIC mp_obj_t nativeio_i2c_writeto(size_t n_args, const mp_obj_t *pos_args, mp mp_buffer_info_t bufinfo; mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_READ); - int32_t end = args[ARG_end].u_int; + uint32_t end = args[ARG_end].u_int; if (end < 0) { end += bufinfo.len; } - uint32_t len = end - args[ARG_start].u_int; - if (len > (int32_t) bufinfo.len) { - len = bufinfo.len; - } else if (len < 0) { + uint32_t start = args[ARG_start].u_int; + uint32_t len = end - start; + if (end < start) { len = 0; + } else if (len > bufinfo.len) { + len = bufinfo.len; } - int32_t start = args[ARG_start].u_int; // do the transfer bool ok = common_hal_nativeio_i2c_write(self, args[ARG_address].u_int, |
