[Python-checkins] python/dist/src/Objects longobject.c,1.138,1.139

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Thu, 15 Aug 2002 12:41:08 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv1607/python/Objects

Modified Files:
	longobject.c 
Log Message:
long_mul():  Simplified exit code.  In particular, k_mul() returns a
normalized result, so no point to normalizing it again.  The number
of test+branches was also excessive.


Index: longobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/longobject.c,v
retrieving revision 1.138
retrieving revision 1.139
diff -C2 -d -r1.138 -r1.139
*** longobject.c	14 Aug 2002 17:07:32 -0000	1.138
--- longobject.c	15 Aug 2002 19:41:06 -0000	1.139
***************
*** 1879,1894 ****
  
  	z = k_mul(a, b);
! 	if(z == NULL) {
! 		Py_DECREF(a);
! 		Py_DECREF(b);
! 		return NULL;
! 	}
! 	if (a->ob_size < 0)
! 		z->ob_size = -(z->ob_size);
! 	if (b->ob_size < 0)
  		z->ob_size = -(z->ob_size);
  	Py_DECREF(a);
  	Py_DECREF(b);
! 	return (PyObject *) long_normalize(z);
  }
  
--- 1879,1888 ----
  
  	z = k_mul(a, b);
! 	/* Negate if exactly one of the inputs is negative. */
! 	if (((a->ob_size ^ b->ob_size) < 0) && z)
  		z->ob_size = -(z->ob_size);
  	Py_DECREF(a);
  	Py_DECREF(b);
! 	return (PyObject *)z;
  }