Browse Source

bool should return a bool

David Rose 14 years ago
parent
commit
6bed0cf394

+ 23 - 18
dtool/src/interrogate/interfaceMakerPythonNative.cxx

@@ -2871,32 +2871,37 @@ void InterfaceMakerPythonNative::pack_return_value(ostream &out, int indent_leve
         << return_expr << ".data(), (int)" << return_expr << ".length());\n";
     }
 
+  } else if (TypeManager::is_bool(type)) {
+    indent(out, indent_level)
+      << "return PyBool_FromLong(" << return_expr << ");\n";
+
   } else if (TypeManager::is_unsigned_longlong(type)) {
     indent(out, indent_level)
       << "return PyLong_FromUnsignedLongLong(" << return_expr << ");\n";
 
   } else if (TypeManager::is_longlong(type)) {
-      indent(out, indent_level)
-          << "return PyLong_FromLongLong(" << return_expr << ");\n";
-
-  }  else if(TypeManager::is_unsigned_integer(type)){
-      indent(out, indent_level)
-          << "return PyLongOrInt_FromUnsignedLong(" << return_expr << ");\n";
+    indent(out, indent_level)
+      << "return PyLong_FromLongLong(" << return_expr << ");\n";
 
-  }else if (TypeManager::is_integer(type)) {
-      indent(out, indent_level)
-          << "return PyInt_FromLong(" << return_expr << ");\n";
+  } else if(TypeManager::is_unsigned_integer(type)){
+    indent(out, indent_level)
+      << "return PyLongOrInt_FromUnsignedLong(" << return_expr << ");\n";
+    
+  } else if (TypeManager::is_integer(type)) {
+    indent(out, indent_level)
+      << "return PyInt_FromLong(" << return_expr << ");\n";
+    
   } else if (TypeManager::is_float(type)) {
-      indent(out, indent_level)
-          << "return PyFloat_FromDouble(" << return_expr << ");\n";
-
+    indent(out, indent_level)
+      << "return PyFloat_FromDouble(" << return_expr << ");\n";
+    
   } else if (TypeManager::is_char_pointer(type)) {
-      indent(out, indent_level)<<"if("<< return_expr<< " == NULL)\n";
-      indent(out, indent_level)<<"{\n";
-      indent(out, indent_level)<<"    Py_INCREF(Py_None);\n";
-      indent(out, indent_level)<<"    return Py_None;\n";
-      indent(out, indent_level)<<"}\n";
-      indent(out, indent_level)
+    indent(out, indent_level)<<"if("<< return_expr<< " == NULL)\n";
+    indent(out, indent_level)<<"{\n";
+    indent(out, indent_level)<<"    Py_INCREF(Py_None);\n";
+    indent(out, indent_level)<<"    return Py_None;\n";
+    indent(out, indent_level)<<"}\n";
+    indent(out, indent_level)
       << "return PyString_FromString(" << return_expr << ");\n";
 
   }

+ 4 - 0
dtool/src/interrogate/interfaceMakerPythonObj.cxx

@@ -562,6 +562,10 @@ pack_return_value(ostream &out, int indent_level,
         << return_expr << ".data(), " << return_expr << ".length());\n";
     }
 
+  } else if (TypeManager::is_bool(type)) {
+    indent(out, indent_level)
+      << "return PyBool_FromLong(" << return_expr << ");\n";
+
   } else if (TypeManager::is_unsigned_longlong(type)) {
     indent(out, indent_level)
       << "return PyLong_FromUnsignedLongLong(" << return_expr << ");\n";

+ 4 - 0
dtool/src/interrogate/interfaceMakerPythonSimple.cxx

@@ -466,6 +466,10 @@ pack_return_value(ostream &out, int indent_level,
         << return_expr << ".data(), " << return_expr << ".length());\n";
     }
 
+  } else if (TypeManager::is_bool(type)) {
+    indent(out, indent_level)
+      << "return PyBool_FromLong(" << return_expr << ");\n";
+
   } else if (TypeManager::is_unsigned_longlong(type)) 
   {
     indent(out, indent_level)