[Python-checkins] r80293 - python/branches/py3k/Modules/datetimemodule.c
mark.dickinson
python-checkins at python.org
Wed Apr 21 01:24:25 CEST 2010
Author: mark.dickinson
Date: Wed Apr 21 01:24:25 2010
New Revision: 80293
Log:
Rework delta_divmod to avoid use of PyTuple_SetItem.
Modified:
python/branches/py3k/Modules/datetimemodule.c
Modified: python/branches/py3k/Modules/datetimemodule.c
==============================================================================
--- python/branches/py3k/Modules/datetimemodule.c (original)
+++ python/branches/py3k/Modules/datetimemodule.c Wed Apr 21 01:24:25 2010
@@ -1927,7 +1927,8 @@
PyObject *pyus_left;
PyObject *pyus_right;
PyObject *divmod;
- PyObject *microseconds, *delta;
+ PyObject *delta;
+ PyObject *result;
if (!PyDelta_Check(left) || !PyDelta_Check(right)) {
Py_INCREF(Py_NotImplemented);
@@ -1950,14 +1951,16 @@
if (divmod == NULL)
return NULL;
- microseconds = PyTuple_GetItem(divmod, 1);
- delta = microseconds_to_delta(microseconds);
+ assert(PyTuple_Size(divmod) == 2);
+ delta = microseconds_to_delta(PyTuple_GET_ITEM(divmod, 1));
if (delta == NULL) {
Py_DECREF(divmod);
return NULL;
}
- PyTuple_SetItem(divmod, 1, delta);
- return divmod;
+ result = PyTuple_Pack(2, PyTuple_GET_ITEM(divmod, 0), delta);
+ Py_DECREF(delta);
+ Py_DECREF(divmod);
+ return result;
}
/* Fold in the value of the tag ("seconds", "weeks", etc) component of a
More information about the Python-checkins
mailing list