[Python-checkins] python/nondist/sandbox/datetime obj_date.c,1.51,1.52 obj_datetime.c,1.48,1.49

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Fri, 13 Dec 2002 11:16:11 -0800


Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv7166

Modified Files:
	obj_date.c obj_datetime.c 
Log Message:
More use of typecheck macros.


Index: obj_date.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/obj_date.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** obj_date.c	13 Dec 2002 19:07:25 -0000	1.51
--- obj_date.c	13 Dec 2002 19:16:07 -0000	1.52
***************
*** 190,203 ****
  date_subtract(PyObject *left, PyObject *right)
  {
! 	PyTypeObject *left_type = left->ob_type;
! 	PyTypeObject *right_type = right->ob_type;
! 
! 	if (PyType_IsSubtype(left_type, &PyDateTime_DateTimeType)
! 	    || PyType_IsSubtype(right_type, &PyDateTime_DateTimeType)) {
  		Py_INCREF(Py_NotImplemented);
  		return Py_NotImplemented;
  	}
! 	if (PyType_IsSubtype(left_type, &PyDateTime_DateType)) {
! 		if (PyType_IsSubtype(right_type, &PyDateTime_DateType)) {
  			/* date - date */
  			long left_ord = ymd_to_ord(GET_YEAR(left),
--- 190,199 ----
  date_subtract(PyObject *left, PyObject *right)
  {
! 	if (PyDateTime_Check(left) || PyDateTime_Check(right)) {
  		Py_INCREF(Py_NotImplemented);
  		return Py_NotImplemented;
  	}
! 	if (PyDate_CheckExact(left)) {
! 		if (PyDate_CheckExact(right)) {
  			/* date - date */
  			long left_ord = ymd_to_ord(GET_YEAR(left),
***************
*** 209,213 ****
  			return new_delta(left_ord - right_ord, 0, 0, 0);
  		}
! 		if (PyType_IsSubtype(right_type, &PyDateTime_DeltaType)) {
  			/* date - delta */
  			return add_date_timedelta((PyDateTime_Date *) left,
--- 205,209 ----
  			return new_delta(left_ord - right_ord, 0, 0, 0);
  		}
! 		if (PyDelta_Check(right)) {
  			/* date - delta */
  			return add_date_timedelta((PyDateTime_Date *) left,
***************
*** 320,324 ****
  	long diff;
  
! 	if (! PyType_IsSubtype(other->ob_type, &PyDateTime_DateType)) {
  		PyErr_Format(PyExc_TypeError,
  			     "can't compare date to %s instance",
--- 316,320 ----
  	long diff;
  
! 	if (! PyDate_Check(other)) {
  		PyErr_Format(PyExc_TypeError,
  			     "can't compare date to %s instance",
***************
*** 405,409 ****
  	PyObject *result = NULL;
  
! 	if (date->ob_type != &PyDateTime_DateType) {
  		PyErr_Format(PyExc_TypeError,
  			     "bad type passed to date pickler: %s",
--- 401,405 ----
  	PyObject *result = NULL;
  
! 	if (! PyDate_CheckExact(date)) {
  		PyErr_Format(PyExc_TypeError,
  			     "bad type passed to date pickler: %s",

Index: obj_datetime.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/obj_datetime.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** obj_datetime.c	13 Dec 2002 16:43:20 -0000	1.48
--- obj_datetime.c	13 Dec 2002 19:16:08 -0000	1.49
***************
*** 292,301 ****
  datetime_add(PyObject *left, PyObject *right)
  {
! 	PyTypeObject *left_type = left->ob_type;
! 	PyTypeObject *right_type = right->ob_type;
! 
! 	if (PyType_IsSubtype(left_type, &PyDateTime_DateTimeType)) {
  		/* datetime + ??? */
! 		if (PyType_IsSubtype(right_type, &PyDateTime_DeltaType))
  			/* datetime + delta */
  			return add_datetime_timedelta(
--- 292,298 ----
  datetime_add(PyObject *left, PyObject *right)
  {
! 	if (PyDateTime_Check(left)) {
  		/* datetime + ??? */
! 		if (PyDelta_Check(right))
  			/* datetime + delta */
  			return add_datetime_timedelta(
***************
*** 303,307 ****
  					(PyDateTime_Delta *)right);
  	}
! 	else if (PyType_IsSubtype(left_type, &PyDateTime_DeltaType)) {
  		/* delta + datetime */
  		return add_datetime_timedelta((PyDateTime_DateTime *) right,
--- 300,304 ----
  					(PyDateTime_Delta *)right);
  	}
! 	else if (PyDelta_Check(left)) {
  		/* delta + datetime */
  		return add_datetime_timedelta((PyDateTime_DateTime *) right,
***************
*** 315,325 ****
  datetime_subtract(PyObject *left, PyObject *right)
  {
- 	PyTypeObject *left_type = left->ob_type;
- 	PyTypeObject *right_type = right->ob_type;
  	PyObject *result = Py_NotImplemented;
  
! 	if (PyType_IsSubtype(left_type, &PyDateTime_DateTimeType)) {
  		/* datetime - ??? */
! 		if (PyType_IsSubtype(right_type, &PyDateTime_DateTimeType)) {
  			/* datetime - datetime */
  			result = sub_datetime_datetime(
--- 312,320 ----
  datetime_subtract(PyObject *left, PyObject *right)
  {
  	PyObject *result = Py_NotImplemented;
  
! 	if (PyDateTime_Check(left)) {
  		/* datetime - ??? */
! 		if (PyDateTime_Check(right)) {
  			/* datetime - datetime */
  			result = sub_datetime_datetime(
***************
*** 327,331 ****
  					(PyDateTime_DateTime *)right);
  		}
! 		else if (PyType_IsSubtype(right_type, &PyDateTime_DeltaType)) {
  			/* datetime - delta */
  			result = sub_datetime_timedelta(
--- 322,326 ----
  					(PyDateTime_DateTime *)right);
  		}
! 		else if (PyDelta_Check(right)) {
  			/* datetime - delta */
  			result = sub_datetime_timedelta(
***************
*** 420,424 ****
  	long diff;
  
! 	if (!PyType_IsSubtype(other->ob_type, &PyDateTime_DateTimeType)) {
  		PyErr_Format(PyExc_TypeError,
  			     "can't compare datetime to %s instance",
--- 415,419 ----
  	long diff;
  
! 	if (! PyDateTime_Check(other)) {
  		PyErr_Format(PyExc_TypeError,
  			     "can't compare datetime to %s instance",
***************
*** 509,513 ****
  	PyObject *result = NULL;
  
! 	if (datetime->ob_type != &PyDateTime_DateTimeType) {
  		PyErr_Format(PyExc_TypeError,
  			     "bad type passed to datetime pickler: %s",
--- 504,508 ----
  	PyObject *result = NULL;
  
! 	if (! PyDateTime_CheckExact(datetime)) {
  		PyErr_Format(PyExc_TypeError,
  			     "bad type passed to datetime pickler: %s",