From e8b54dec4cdc94764abda4a107bc37dcd58e6f13 Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Thu, 12 Sep 2013 13:59:51 -0700 Subject: [PATCH] Set correct baseclass for heap allocated type subclasses. --- Cython/Compiler/ModuleNode.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py index 399f07a..bc2ff51 100644 --- a/Cython/Compiler/ModuleNode.py +++ b/Cython/Compiler/ModuleNode.py @@ -903,10 +903,14 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): code.putln(header) base_type = type.base_type if base_type: + basestruct_cname = base_type.objstruct_cname + if basestruct_cname == "PyTypeObject": + # User-defined subclasses of type are heap allocated. + basestruct_cname = "PyHeapTypeObject" code.putln( "%s%s %s;" % ( ("struct ", "")[base_type.typedef_flag], - base_type.objstruct_cname, + basestruct_cname, Naming.obj_base_cname)) else: code.putln( -- 2.7.4