diff options
author | Robert Bradshaw <robertwb@gmail.com> | 2013-09-12 13:59:51 -0700 |
---|---|---|
committer | Robert Bradshaw <robertwb@gmail.com> | 2013-09-12 13:59:51 -0700 |
commit | 1084fafbb4da9e8763ef09fe4c3bde8a40ed7e48 (patch) | |
tree | acdbe712e341b80ccfb7e821b77d2a1ee21192d1 | |
parent | 8d1c6b5e95961d1376f0843e156a910f09a50adc (diff) | |
download | cython-1084fafbb4da9e8763ef09fe4c3bde8a40ed7e48.tar.gz |
Set correct baseclass for heap allocated type subclasses.
--HG--
extra : transplant_source : E%BEhL%948%C1%07%EC%BDx%7C%7E%C2%3Fq%1D%EFE%BC
-rw-r--r-- | Cython/Compiler/ModuleNode.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py index 767699318..b7f68716b 100644 --- a/Cython/Compiler/ModuleNode.py +++ b/Cython/Compiler/ModuleNode.py @@ -916,10 +916,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( |