Anonymous avatar Anonymous committed f08d7f3

Include mymath.h instead of declaring prototypes for math functions.
Fix leak and unchecked error in complex().

Comments (0)

Files changed (1)

Python/bltinmodule.c

 #include "compile.h"
 #include "eval.h"
 
+#include "mymath.h"
+
 /* Forward */
 static object *filterstring PROTO((object *, object *));
 static object *filtertuple  PROTO((object *, object *));
 	object *self;
 	object *args;
 {
-	object *r, *i;
+	object *r, *i, *tmp;
 	number_methods *nbr, *nbi;
 	Py_complex cr, ci;
 
 	if (is_complexobject(r))
 		cr = ((complexobject*)r)->cval;
 	else {
-		cr.real = getfloatvalue((*nbr->nb_float)(r));
+		tmp = (*nbr->nb_float)(r);
+		if (tmp == NULL)
+			return NULL;
+		cr.real = getfloatvalue(tmp);
+		DECREF(tmp);
 		cr.imag = 0.;
 	}
 	if (i == NULL) {
 	else if (is_complexobject(i))
 		ci = ((complexobject*)i)->cval;
 	else {
-		ci.real = getfloatvalue((*nbi->nb_float)(i));
+		tmp = (*nbr->nb_float)(r);
+		if (tmp == NULL)
+			return NULL;
+		ci.real = getfloatvalue(tmp);
+		DECREF(tmp);
 		ci.imag = 0.;
 	}
 	cr.real -= ci.imag;
 	object *self;
 	object *args;
 {
-	extern double floor PROTO((double));
-	extern double ceil PROTO((double));
 	double x;
 	double f;
 	int ndigits = 0;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.