Commit 15b79e21 authored by Stefan Behnel's avatar Stefan Behnel

support utility code for C functions that override C methods

parent d4b851ff
...@@ -3830,10 +3830,12 @@ class AttributeNode(ExprNode): ...@@ -3830,10 +3830,12 @@ class AttributeNode(ExprNode):
else: else:
# result_code contains what is needed, but we may need to insert # result_code contains what is needed, but we may need to insert
# a check and raise an exception # a check and raise an exception
if (self.obj.type.is_extension_type if self.obj.type.is_extension_type:
and self.needs_none_check if self.needs_none_check and code.globalstate.directives['nonecheck']:
and code.globalstate.directives['nonecheck']): self.put_nonecheck(code)
self.put_nonecheck(code) elif self.entry and self.entry.is_cmethod and self.entry.utility_code:
# C method implemented as function call with utility code
code.globalstate.use_utility_code(self.entry.utility_code)
def generate_assignment_code(self, rhs, code): def generate_assignment_code(self, rhs, code):
self.obj.generate_evaluation_code(code) self.obj.generate_evaluation_code(code)
......
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