From: Vitja Makarov Date: Mon, 14 Feb 2011 06:42:37 +0000 (+0300) Subject: Merge remote branch 'upstream/master' X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=86d1bd4a8cdf37b4ed606b782920c38a59764e10;p=cython.git Merge remote branch 'upstream/master' Conflicts: Cython/Compiler/Nodes.py --- 86d1bd4a8cdf37b4ed606b782920c38a59764e10 diff --cc Cython/Compiler/Nodes.py index 128fefe0,16802078..554b45fb --- a/Cython/Compiler/Nodes.py +++ b/Cython/Compiler/Nodes.py @@@ -2649,18 -2634,19 +2649,18 @@@ class DefNode(FuncDefNode) code.putln('if (PyTuple_GET_SIZE(%s) > %d) {' % ( Naming.args_cname, max_positional_args)) - code.put('%s = PyTuple_GetSlice(%s, %d, PyTuple_GET_SIZE(%s)); ' % ( + code.putln('%s = PyTuple_GetSlice(%s, %d, PyTuple_GET_SIZE(%s));' % ( self.star_arg.entry.cname, Naming.args_cname, max_positional_args, Naming.args_cname)) - code.put_gotref(self.star_arg.entry.cname) + code.putln("if (unlikely(!%s)) {" % self.star_arg.entry.cname) if self.starstar_arg: - code.put_decref(self.starstar_arg.entry.cname, py_object_type) - code.putln("") - code.putln("if (unlikely(!%s)) {" % self.star_arg.entry.cname) + code.put_decref_clear(self.starstar_arg.entry.cname, py_object_type) - code.putln('return %s;' % self.error_value()) - code.putln('}') - else: - code.putln("if (unlikely(!%s)) return %s;" % ( - self.star_arg.entry.cname, self.error_value())) + if self.needs_closure: + code.put_decref(Naming.cur_scope_cname, self.local_scope.scope_class.type) + code.put_finish_refcount_context() + code.putln('return %s;' % self.error_value()) + code.putln('}') + code.put_gotref(self.star_arg.entry.cname) code.putln('} else {') code.put("%s = %s; " % (self.star_arg.entry.cname, Naming.empty_tuple)) code.put_incref(Naming.empty_tuple, py_object_type)