]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/msw/gdi_wrap.cpp
reSWIGged
[wxWidgets.git] / wxPython / src / msw / gdi_wrap.cpp
index 2337f845e2ac7c13ad9366283bd2c9e56d7a4bd2..34429f393198ff736e43deb806b13fc0c2155a02 100644 (file)
@@ -363,15 +363,30 @@ SWIG_CheckUnsignedLongInRange(unsigned long value, const char* type,
 }
 
 
+SWIGSTATICINLINE(long)
+SWIG_AsLong(PyObject * 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;
+    }
+}
+
+
 SWIGSTATICINLINE(unsigned long)
 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;
   }
@@ -464,13 +479,6 @@ SWIG_CheckLongInRange(long value, const char* type,
 }
 
 
-SWIGSTATICINLINE(long)
-SWIG_AsLong(PyObject * obj)
-{
-  return PyInt_Check(obj) ? PyInt_AsLong(obj) : PyLong_AsLong(obj);
-}
-
-
 #if INT_MAX != LONG_MAX
 SWIGSTATICINLINE(int)
 SWIG_AsInt(PyObject *obj)
@@ -753,17 +761,15 @@ wxColour wxDC_GetPixel(wxDC *self,wxPoint const &pt){
 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;
+    }
 }