[Python-checkins] python/nondist/sandbox/datetime datetime.c,1.43,1.44 obj_date.c,1.32,1.33
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Fri, 06 Dec 2002 09:06:31 -0800
Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv16549
Modified Files:
datetime.c obj_date.c
Log Message:
Fred pointed out that PyObject_CallMethod can be used to call a module
function too, so exploited that to save some tedious boilerplate code.
Index: datetime.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -d -r1.43 -r1.44
*** datetime.c 6 Dec 2002 02:55:32 -0000 1.43
--- datetime.c 6 Dec 2002 17:04:58 -0000 1.44
***************
*** 340,344 ****
{
PyObject *time;
- PyObject *time_strftime;
PyObject *result;
--- 340,343 ----
***************
*** 349,359 ****
return NULL;
! time_strftime = PyObject_GetAttrString(time, "strftime");
! Py_DECREF(time);
! if (time_strftime == NULL)
! return NULL;
!
! result = PyObject_CallFunction(time_strftime, "OO", format, tuple);
! Py_DECREF(time_strftime);
return result;
}
--- 348,353 ----
return NULL;
! result = PyObject_CallMethod(time, "strftime", "OO", format, tuple);
! Py_DECREF(time);
return result;
}
***************
*** 743,754 ****
{
PyObject *temp;
- PyObject *copyreg_pickle;
PyObject *pickler;
! temp = PyImport_ImportModule("copy_reg");
! assert(temp);
! copyreg_pickle = PyObject_GetAttrString(temp, "pickle");
! assert(copyreg_pickle);
! Py_DECREF(temp);
pickler = PyObject_GetAttrString(m, "_date_pickler");
--- 737,744 ----
{
PyObject *temp;
PyObject *pickler;
+ PyObject *copyreg = PyImport_ImportModule("copy_reg");
! assert(copyreg);
pickler = PyObject_GetAttrString(m, "_date_pickler");
***************
*** 757,764 ****
"_date_unpickler");
assert(date_unpickler_object);
! temp = PyObject_CallFunction(copyreg_pickle, "OOO",
! &PyDateTime_DateType,
! pickler,
! date_unpickler_object);
assert(temp);
Py_DECREF(temp);
--- 747,754 ----
"_date_unpickler");
assert(date_unpickler_object);
! temp = PyObject_CallMethod(copyreg, "pickle", "OOO",
! &PyDateTime_DateType,
! pickler,
! date_unpickler_object);
assert(temp);
Py_DECREF(temp);
***************
*** 770,782 ****
"_datetime_unpickler");
assert(datetime_unpickler_object);
! temp = PyObject_CallFunction(copyreg_pickle, "OOO",
! &PyDateTime_DateTimeType,
! pickler,
! datetime_unpickler_object);
assert(temp);
Py_DECREF(temp);
Py_DECREF(pickler);
! Py_DECREF(copyreg_pickle);
}
}
--- 760,772 ----
"_datetime_unpickler");
assert(datetime_unpickler_object);
! temp = PyObject_CallMethod(copyreg, "pickle", "OOO",
! &PyDateTime_DateTimeType,
! pickler,
! datetime_unpickler_object);
assert(temp);
Py_DECREF(temp);
Py_DECREF(pickler);
! Py_DECREF(copyreg);
}
}
Index: obj_date.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/obj_date.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** obj_date.c 6 Dec 2002 05:26:52 -0000 1.32
--- obj_date.c 6 Dec 2002 17:05:13 -0000 1.33
***************
*** 227,232 ****
date_today(PyObject *self, PyObject *cls)
{
! PyObject *time; /* the time module, and later time.time() */
! PyObject *time_time; /* time.time */
PyObject *result;
--- 227,232 ----
date_today(PyObject *self, PyObject *cls)
{
! PyObject *time; /* the time module) */
! PyObject *time_time; /* time.time() */
PyObject *result;
***************
*** 235,246 ****
return NULL;
! time_time = PyObject_GetAttrString(time, "time");
Py_DECREF(time);
! if (time_time == NULL)
! return NULL;
!
! time = PyObject_CallObject(time_time, NULL);
! Py_DECREF(time_time);
! if (time == NULL)
return NULL;
--- 235,241 ----
return NULL;
! time_time = PyObject_CallMethod(time, "time", "()");
Py_DECREF(time);
! if (time_time == NULL)
return NULL;
***************
*** 251,256 ****
* date.today() could get away with plain C time().
*/
! result = PyObject_CallMethod(cls, "fromtimestamp", "O", time);
! Py_DECREF(time);
return result;
}
--- 246,251 ----
* date.today() could get away with plain C time().
*/
! result = PyObject_CallMethod(cls, "fromtimestamp", "O", time_time);
! Py_DECREF(time_time);
return result;
}