chiark / gitweb /
Merge remote-tracking branch 'origin/HEAD'
[catacomb-python] / field.c
diff --git a/field.c b/field.c
index 2807c1ccbfb6cb491fb5902868548af47f6b203a..0a5d908f805dcff2ffe04b2f8d29899bcc14fcec 100644 (file)
--- a/field.c
+++ b/field.c
@@ -263,10 +263,12 @@ end:
 static PyObject *fe_pyint(PyObject *x)
 {
   long l;
+  PyObject *rc;
   mp *xx = F_OUT(FE_F(x), MP_NEW, FE_X(x));
-  if (mp_tolong_checked(xx, &l)) { MP_DROP(xx); return (0); }
+  if (!mp_tolong_checked(xx, &l, 0)) rc = PyInt_FromLong(l);
+  else rc = mp_topylong(xx);
   MP_DROP(xx);
-  return (PyInt_FromLong(l));
+  return (rc);
 }
 
 static PyObject *fe_pylong(PyObject *x)