diff options
author | Dag Sverre Seljebotn <dagss@student.matnat.uio.no> | 2008-08-03 20:35:30 +0200 |
---|---|---|
committer | Dag Sverre Seljebotn <dagss@student.matnat.uio.no> | 2008-08-03 20:35:30 +0200 |
commit | d65fd74750c352e4fd49fa99ff88b4d04a1a34b9 (patch) | |
tree | adf29759188922b9e9458a0d98f423115bd4f7b5 /Cython/Compiler/ModuleNode.py | |
parent | 18ba3a48158be7c0248ba9a43ce8b6ebed42bb5a (diff) | |
parent | 9262420f987e3215b11aecb5fe703846931e1daf (diff) | |
download | cython-d65fd74750c352e4fd49fa99ff88b4d04a1a34b9.tar.gz |
Merge.
Had to move some changes made in ModuleNode.py over to Code.py manually.
Diffstat (limited to 'Cython/Compiler/ModuleNode.py')
-rw-r--r-- | Cython/Compiler/ModuleNode.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py index 5d23f79b5..c31a781e7 100644 --- a/Cython/Compiler/ModuleNode.py +++ b/Cython/Compiler/ModuleNode.py @@ -842,8 +842,11 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): #if need_self_cast: # self.generate_self_cast(scope, code) if type.vtabslot_cname: - if base_type: - struct_type_cast = "(struct %s*)" % base_type.vtabstruct_cname + vtab_base_type = type + while vtab_base_type.base_type and vtab_base_type.base_type.vtabstruct_cname: + vtab_base_type = vtab_base_type.base_type + if vtab_base_type is not type: + struct_type_cast = "(struct %s*)" % vtab_base_type.vtabstruct_cname else: struct_type_cast = "" code.putln("p->%s = %s%s;" % ( |