another post-#633 fix: accidentally wasn't restricted to Python references
authorStefan Behnel <scoder@users.berlios.de>
Mon, 27 Dec 2010 10:13:55 +0000 (11:13 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Mon, 27 Dec 2010 10:13:55 +0000 (11:13 +0100)
Cython/Compiler/ExprNodes.py

index 6a42cfedf8719df281ca5ad44d06fb375206f110..366145cfd67fb900ee0e76f4f2a1f38c73a9e047 100755 (executable)
@@ -2954,7 +2954,7 @@ class SimpleCallNode(CallNode):
         for i in range(min(max_nargs, actual_nargs)):
             formal_type = func_type.args[i].type
             arg = self.args[i].coerce_to(formal_type, env)
-            if not env.nogil and (arg.is_attribute or not arg.is_simple):
+            if arg.type.is_pyobject and not env.nogil and (arg.is_attribute or not arg.is_simple):
                 # we do not own the argument's reference, but we must
                 # make sure it cannot be collected before we return
                 # from the function, so we create an owned temp