safety fix: why should the return type always be exactly PyObject if it is known...
authorStefan Behnel <scoder@users.berlios.de>
Tue, 20 Apr 2010 07:17:16 +0000 (09:17 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Tue, 20 Apr 2010 07:17:16 +0000 (09:17 +0200)
Cython/Compiler/ExprNodes.py

index ec0c0f1592021f31067d290ca24b0a16cfff3b48..a3e717f0b45c9c406b54482bcc29288dd3e9a23a 100755 (executable)
@@ -5553,7 +5553,7 @@ class CmpNode(object):
 
     def generate_operation_code(self, code, result_code, 
             operand1, op , operand2):
-        if self.type is PyrexTypes.py_object_type:
+        if self.type.is_pyobject:
             coerce_result = "__Pyx_PyBool_FromLong"
         else:
             coerce_result = ""
@@ -5563,7 +5563,7 @@ class CmpNode(object):
             negation = ""
         if op == 'in' or op == 'not_in':
             code.globalstate.use_utility_code(contains_utility_code)
-            if self.type is PyrexTypes.py_object_type:
+            if self.type.is_pyobject:
                 coerce_result = "__Pyx_PyBoolOrNull_FromLong"
             if op == 'not_in':
                 negation = "__Pyx_NegateNonNeg"
@@ -5577,7 +5577,7 @@ class CmpNode(object):
                 method = "PyDict_Contains"
             else:
                 method = "PySequence_Contains"
-            if self.type is PyrexTypes.py_object_type:
+            if self.type.is_pyobject:
                 error_clause = code.error_goto_if_null
                 got_ref = "__Pyx_XGOTREF(%s); " % result_code
             else: