提交 47d5f219 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Fix COp when used with a context.

上级 1e500bd6
...@@ -1171,7 +1171,7 @@ def apply_meth(tag): ...@@ -1171,7 +1171,7 @@ def apply_meth(tag):
code = self.code_sections[tag] code = self.code_sections[tag]
define_macros, undef_macros = self.get_c_macros(node, name) define_macros, undef_macros = self.get_c_macros(node, name)
return os.linesep.join([define_macros, code, return os.linesep.join(['', define_macros, code,
undef_macros]) undef_macros])
else: else:
raise utils.MethodNotDefined( raise utils.MethodNotDefined(
...@@ -1428,7 +1428,7 @@ class COp(Op): ...@@ -1428,7 +1428,7 @@ class COp(Op):
def_macros, undef_macros = self.get_c_macros(node, name) def_macros, undef_macros = self.get_c_macros(node, name)
def_sub, undef_sub = self.get_sub_macros(sub) def_sub, undef_sub = self.get_sub_macros(sub)
return os.linesep.join([def_macros, def_sub, return os.linesep.join(['', def_macros, def_sub,
op_code, op_code,
undef_sub, undef_macros]) undef_sub, undef_macros])
else: else:
...@@ -1442,17 +1442,21 @@ class COp(Op): ...@@ -1442,17 +1442,21 @@ class COp(Op):
define_macros, undef_macros = self.get_c_macros(node, name, define_macros, undef_macros = self.get_c_macros(node, name,
check_input=False) check_input=False)
ctx = ""
if 'context' in sub:
ctx = ", %s" % (sub['context'],)
# Generate the C code # Generate the C code
return """ return """
%(define_macros)s %(define_macros)s
{ {
if (%(func_name)s(%(func_args)s) != 0) { if (%(func_name)s(%(func_args)s%(ctx)s) != 0) {
%(fail)s %(fail)s
} }
} }
%(undef_macros)s %(undef_macros)s
""" % dict(func_name=self.func_name, """ % dict(func_name=self.func_name,
fail=sub['fail'], fail=sub['fail'], ctx=ctx,
func_args=self.format_c_function_args(inp, out), func_args=self.format_c_function_args(inp, out),
define_macros=define_macros, define_macros=define_macros,
undef_macros=undef_macros) undef_macros=undef_macros)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论