summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/nativeglue.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/py/nativeglue.c b/py/nativeglue.c
index e27d69e14e..bc2f4ff5e7 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);
+ }
}
}
}