From 7133d91773392f564b6a8d52f09c34cebc975ae3 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 10 Aug 2014 11:46:10 +0300 Subject: [PATCH] py: mp_buffer_info_t::buf may be valid, but NULL for empty objects. This happens for example for zero-size arrays. As .get_buffer() method now has explicit return value, it's enough to distinguish success vs failure of getting buffer. --- py/obj.c | 2 +- py/obj.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/py/obj.c b/py/obj.c index ae20db4354..04716454d7 100644 --- a/py/obj.c +++ b/py/obj.c @@ -410,7 +410,7 @@ bool mp_get_buffer(mp_obj_t obj, mp_buffer_info_t *bufinfo, int flags) { return false; } int ret = type->buffer_p.get_buffer(obj, bufinfo, flags); - if (ret != 0 || bufinfo->buf == NULL) { + if (ret != 0) { return false; } return true; diff --git a/py/obj.h b/py/obj.h index fa42428fad..928402d44a 100644 --- a/py/obj.h +++ b/py/obj.h @@ -210,7 +210,7 @@ typedef struct _mp_buffer_info_t { // them with ver = sizeof(struct). Cons: overkill for *micro*? //int ver; // ? - void *buf; + void *buf; // can be NULL if len == 0 mp_int_t len; // in bytes int typecode; // as per binary.h