rename args variable in CALL_FUNCTION to callargs (avoids name
override)

add missing DECREFs in error handling code of CALL_FUNCTION
diff --git a/Python/ceval.c b/Python/ceval.c
index 6b3b257..5213172 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1615,7 +1615,7 @@
 		    }
 		    else {
 			int nstar = 0;
-			PyObject *args;
+			PyObject *callargs;
 			PyObject *stararg = 0;
 			PyObject *kwdict = NULL;
 			if (flags & 2) {
@@ -1678,6 +1678,8 @@
 				    PyErr_Format(PyExc_TypeError,
 					"keyword parameter redefined: %.400s",
 						 PyString_AsString(key));
+				    Py_DECREF(key);
+				    Py_DECREF(value);
 				    break;
 				}
 				err = PyDict_SetItem(kwdict, key, value);
@@ -1687,13 +1689,12 @@
 				    break;
 			    }
 			    if (err) {
-				Py_DECREF(args);
 				Py_DECREF(kwdict);
 				break;
 			    }
 			}
-			args = PyTuple_New(na + nstar);
-			if (args == NULL) {
+			callargs = PyTuple_New(na + nstar);
+			if (callargs == NULL) {
 			    x = NULL;
 			    break;
 			}
@@ -1702,16 +1703,18 @@
 			    for (i = 0; i < nstar; i++) {
 				PyObject *a = PyTuple_GET_ITEM(stararg, i);
 				Py_INCREF(a);
-				PyTuple_SET_ITEM(args, na + i, a);
+				PyTuple_SET_ITEM(callargs, na + i, a);
 			    }
 			    Py_DECREF(stararg);
 			}
 			while (--na >= 0) {
 			    w = POP();
-			    PyTuple_SET_ITEM(args, na, w);
+			    PyTuple_SET_ITEM(callargs, na, w);
 			}
-			x = PyEval_CallObjectWithKeywords(func, args, kwdict);
-			Py_DECREF(args);
+			x = PyEval_CallObjectWithKeywords(func,
+							  callargs,
+							  kwdict);  
+			Py_DECREF(callargs);
 			Py_XDECREF(kwdict);
 		    }
 		    Py_DECREF(func);