Commit a9743c83 authored by gsamain's avatar gsamain

Fix del on cypclass

parent d4897f09
...@@ -5996,7 +5996,7 @@ class DelStatNode(StatNode): ...@@ -5996,7 +5996,7 @@ class DelStatNode(StatNode):
if arg.type.is_pyobject or (arg.is_name and arg.type.is_memoryviewslice): if arg.type.is_pyobject or (arg.is_name and arg.type.is_memoryviewslice):
if arg.is_name and arg.entry.is_cglobal: if arg.is_name and arg.entry.is_cglobal:
error(arg.pos, "Deletion of global C variable") error(arg.pos, "Deletion of global C variable")
elif arg.type.is_ptr and arg.type.base_type.is_cpp_class: elif arg.type.is_ptr and arg.type.base_type.is_cpp_class or arg.type.is_cyp_class:
self.cpp_check(env) self.cpp_check(env)
elif arg.type.is_cpp_class: elif arg.type.is_cpp_class:
error(arg.pos, "Deletion of non-heap C++ object") error(arg.pos, "Deletion of non-heap C++ object")
...@@ -6026,7 +6026,9 @@ class DelStatNode(StatNode): ...@@ -6026,7 +6026,9 @@ class DelStatNode(StatNode):
arg.generate_evaluation_code(code) arg.generate_evaluation_code(code)
code.putln("delete %s;" % arg.result()) code.putln("delete %s;" % arg.result())
arg.generate_disposal_code(code) arg.generate_disposal_code(code)
# else error reported earlier elif arg.type.is_cyp_class:
code.putln("Cy_DECREF(%s);" % arg.result())
# else error reported earlier
def annotate(self, code): def annotate(self, code):
for arg in self.args: for arg in self.args:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment