make CallNode a NewTempExprNode
authorStefan Behnel <scoder@users.berlios.de>
Wed, 3 Dec 2008 20:57:49 +0000 (21:57 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 3 Dec 2008 20:57:49 +0000 (21:57 +0100)
Cython/Compiler/ExprNodes.py

index 1ed1fdee1ef560ac1cf1e9275e22a9c05f3ec1e1..4153073ea1b0a9c700e16260ed4c2bf428091756 100644 (file)
@@ -678,7 +678,8 @@ class NewTempExprNode(ExprNode):
 
     def free_temps(self, code):
         if self.is_temp:
-            self.release_temp_result(code)
+            if not self.type.is_void:
+                self.release_temp_result(code)
         else:
             self.free_subexpr_temps(code)
         
@@ -2089,7 +2090,7 @@ class SliceNode(ExprNode):
                 code.error_goto_if_null(self.result(), self.pos)))
 
 
-class CallNode(ExprNode):
+class CallNode(NewTempExprNode):
     def gil_check(self, env):
         # Make sure we're not in a nogil environment
         if env.nogil: