]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/msw/core_wrap.cpp
reSWIGged
[wxWidgets.git] / wxPython / src / msw / core_wrap.cpp
index 753ba86965111d0137cd6e75c81ffc4aa295c26c..a040e889efead523f309ca1598e7d87f0d9a1265 100644 (file)
@@ -632,7 +632,15 @@ SWIG_CheckLongInRange(long value, const char* type,
 SWIGSTATICINLINE(long)
 SWIG_AsLong(PyObject * obj)
 {
-  return PyInt_Check(obj) ? PyInt_AsLong(obj) : PyLong_AsLong(obj);
+    if (PyNumber_Check(obj))
+        return PyInt_AsLong(obj);
+    else {
+        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
+                                               obj->ob_type->tp_name);
+        PyErr_SetObject(PyExc_TypeError, errmsg);
+        Py_DECREF(errmsg);
+        return 0;
+    }
 }
 
 
@@ -673,17 +681,15 @@ PyObject *wxSize_Get(wxSize *self){
 SWIGSTATICINLINE(double)
 SWIG_AsDouble(PyObject *obj)
 {
-  double val = (PyFloat_Check(obj)) ? PyFloat_AsDouble(obj) :
-#if HAVE_LONG_LONG
-    ((PyInt_Check(obj)) ? PyInt_AsLong(obj) : PyLong_AsLongLong(obj));
-#else
-    ((PyInt_Check(obj)) ? PyInt_AsLong(obj) : PyLong_AsLong(obj));
-#endif
-  if (PyErr_Occurred()) {
-    PyErr_Clear();
-    PyErr_SetString(PyExc_TypeError, "a double is expected");
-  }
-  return val;
+    if (PyNumber_Check(obj))
+        return PyFloat_AsDouble(obj);
+    else {
+        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
+                                               obj->ob_type->tp_name);
+        PyErr_SetObject(PyExc_TypeError, errmsg);
+        Py_DECREF(errmsg);
+        return 0;
+    }
 }
 
 
@@ -1057,9 +1063,9 @@ SWIG_AsUnsignedLong(PyObject * obj)
   if (PyLong_Check(obj)) {
     return PyLong_AsUnsignedLong(obj);
   } else {
-    long i = PyInt_AsLong(obj);
+    long i = SWIG_AsLong(obj);
     if ( !PyErr_Occurred() && (i < 0)) {
-      PyErr_SetString(PyExc_TypeError, "negative value for unsigned type");
+      PyErr_SetString(PyExc_TypeError, "negative value received for unsigned type");
     }
     return i;
   }