diff options
Diffstat (limited to 'py')
| -rw-r--r-- | py/nativeglue.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/py/nativeglue.c b/py/nativeglue.c index e27d69e14..bc2f4ff5e 100644 --- a/py/nativeglue.c +++ b/py/nativeglue.c @@ -50,10 +50,14 @@ mp_uint_t mp_convert_obj_to_native(mp_obj_t obj, mp_uint_t type) {          case MP_NATIVE_TYPE_BOOL:          case MP_NATIVE_TYPE_INT:          case MP_NATIVE_TYPE_UINT: return mp_obj_get_int_truncated(obj); -        default: { // a pointer +        default: { // cast obj to a pointer              mp_buffer_info_t bufinfo; -            mp_get_buffer_raise(obj, &bufinfo, MP_BUFFER_RW); -            return (mp_uint_t)bufinfo.buf; +            if (mp_get_buffer(obj, &bufinfo, MP_BUFFER_RW)) { +                return (mp_uint_t)bufinfo.buf; +            } else { +                // assume obj is an integer that represents an address +                return mp_obj_get_int_truncated(obj); +            }          }      }  } | 
