From c7fba524cb023be57f4f34c50f116197d198ec0a Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sun, 19 Jun 2016 00:56:06 +0300
Subject: [PATCH] py/objtype: Inherit protocol vtable from base class only if
 it exists.

---
 py/objtype.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/py/objtype.c b/py/objtype.c
index 3020ed513..907308a75 100644
--- a/py/objtype.c
+++ b/py/objtype.c
@@ -918,7 +918,9 @@ mp_obj_t mp_obj_new_type(qstr name, mp_obj_t bases_tuple, mp_obj_t locals_dict)
     // abstract base class which would translate C-level protocol to
     // Python method calls, and any subclass inheriting from it will
     // support this feature.
-    o->protocol = ((mp_obj_type_t*)MP_OBJ_TO_PTR(items[0]))->protocol;
+    if (len > 0) {
+        o->protocol = ((mp_obj_type_t*)MP_OBJ_TO_PTR(items[0]))->protocol;
+    }
     o->bases_tuple = MP_OBJ_TO_PTR(bases_tuple);
     o->locals_dict = MP_OBJ_TO_PTR(locals_dict);
 
-- 
GitLab