osutil: use PyLongObject on Python 3 for listdir_slot
This code looks performance sensitive. So let's retain PyIntObject on
Python 2 and use PyLongObject explicitly on Python 3.
--- a/mercurial/osutil.c Sun Oct 09 13:41:18 2016 +0200
+++ b/mercurial/osutil.c Sun Oct 09 13:47:46 2016 +0200
@@ -63,11 +63,19 @@
};
#endif
+#ifdef IS_PY3K
+#define listdir_slot(name) \
+ static PyObject *listdir_stat_##name(PyObject *self, void *x) \
+ { \
+ return PyLong_FromLong(((struct listdir_stat *)self)->st.name); \
+ }
+#else
#define listdir_slot(name) \
static PyObject *listdir_stat_##name(PyObject *self, void *x) \
{ \
return PyInt_FromLong(((struct listdir_stat *)self)->st.name); \
}
+#endif
listdir_slot(st_dev)
listdir_slot(st_mode)