summaryrefslogtreecommitdiffstats
path: root/Modules/_datetimemodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_datetimemodule.c')
-rw-r--r--Modules/_datetimemodule.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 5cff3f8..6cab1e2 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -2149,29 +2149,9 @@ delta_new(PyTypeObject *type, PyObject *args, PyObject *kw)
if (leftover_us) {
/* Round to nearest whole # of us, and add into x. */
double whole_us = round(leftover_us);
- int x_is_odd;
PyObject *temp;
- whole_us = round(leftover_us);
- if (fabs(whole_us - leftover_us) == 0.5) {
- /* We're exactly halfway between two integers. In order
- * to do round-half-to-even, we must determine whether x
- * is odd. Note that x is odd when it's last bit is 1. The
- * code below uses bitwise and operation to check the last
- * bit. */
- temp = PyNumber_And(x, one); /* temp <- x & 1 */
- if (temp == NULL) {
- Py_DECREF(x);
- goto Done;
- }
- x_is_odd = PyObject_IsTrue(temp);
- Py_DECREF(temp);
- if (x_is_odd == -1) {
- Py_DECREF(x);
- goto Done;
- }
- whole_us = 2.0 * round((leftover_us + x_is_odd) * 0.5) - x_is_odd;
- }
+ whole_us = _PyTime_RoundHalfUp(leftover_us);
temp = PyLong_FromLong((long)whole_us);