@@ -2082,13 +2082,17 @@ dec_from_long(PyTypeObject *type, const PyObject *v, |
|
|
2082 |
2082 |
/* Return a new PyDecObject from a PyLongObject. Use the context for |
2083 |
2083 |
conversion. */ |
2084 |
2084 |
static PyObject * |
2085 |
|
-PyDecType_FromLong(PyTypeObject *type, const PyObject *pylong, |
2086 |
|
-PyObject *context) |
|
2085 |
+PyDecType_FromLong(PyTypeObject *type, const PyObject *v, PyObject *context) |
2087 |
2086 |
{ |
2088 |
2087 |
PyObject *dec; |
2089 |
2088 |
uint32_t status = 0; |
2090 |
2089 |
|
2091 |
|
-dec = dec_from_long(type, pylong, CTX(context), &status); |
|
2090 |
+if (!PyLong_Check(v)) { |
|
2091 |
+PyErr_SetString(PyExc_TypeError, "argument must be an integer"); |
|
2092 |
+return NULL; |
|
2093 |
+ } |
|
2094 |
+ |
|
2095 |
+dec = dec_from_long(type, v, CTX(context), &status); |
2092 |
2096 |
if (dec == NULL) { |
2093 |
2097 |
return NULL; |
2094 |
2098 |
} |
@@ -2104,15 +2108,20 @@ PyDecType_FromLong(PyTypeObject *type, const PyObject *pylong, |
|
|
2104 |
2108 |
/* Return a new PyDecObject from a PyLongObject. Use a maximum context |
2105 |
2109 |
for conversion. If the conversion is not exact, set InvalidOperation. */ |
2106 |
2110 |
static PyObject * |
2107 |
|
-PyDecType_FromLongExact(PyTypeObject *type, const PyObject *pylong, |
|
2111 |
+PyDecType_FromLongExact(PyTypeObject *type, const PyObject *v, |
2108 |
2112 |
PyObject *context) |
2109 |
2113 |
{ |
2110 |
2114 |
PyObject *dec; |
2111 |
2115 |
uint32_t status = 0; |
2112 |
2116 |
mpd_context_t maxctx; |
2113 |
2117 |
|
|
2118 |
+if (!PyLong_Check(v)) { |
|
2119 |
+PyErr_SetString(PyExc_TypeError, "argument must be an integer"); |
|
2120 |
+return NULL; |
|
2121 |
+ } |
|
2122 |
+ |
2114 |
2123 |
mpd_maxcontext(&maxctx); |
2115 |
|
-dec = dec_from_long(type, pylong, &maxctx, &status); |
|
2124 |
+dec = dec_from_long(type, v, &maxctx, &status); |
2116 |
2125 |
if (dec == NULL) { |
2117 |
2126 |
return NULL; |
2118 |
2127 |
} |