diff Python/errors.c @ 76389:e8c87226bcb3

fix refcnt/style/debuging oversights
author Benjamin Peterson <benjamin@python.org>
date Wed, 18 Apr 2012 10:48:00 -0400
parents bf23a6c215f6
children cb6811eb20ef
line wrap: on
line diff
--- a/Python/errors.c	Wed Apr 18 08:30:51 2012 -0500
+++ b/Python/errors.c	Wed Apr 18 10:48:00 2012 -0400
@@ -593,13 +593,15 @@
     if (msg == NULL)
         return NULL;
 
-    args = PyTuple_New(1);
+    args = PyTuple_New(0);
     if (args == NULL)
         return NULL;
 
     kwargs = PyDict_New();
-    if (kwargs == NULL)
+    if (kwargs == NULL) {
+        Py_DECREF(args);
         return NULL;
+    }
 
     if (name == NULL) {
         Py_INCREF(Py_None);
@@ -612,13 +614,13 @@
     }
 
     Py_INCREF(msg);
-    PyTuple_SetItem(args, 0, NULL);//msg);
+    PyTuple_SET_ITEM(args, 0, msg);
     PyDict_SetItemString(kwargs, "name", name);
     PyDict_SetItemString(kwargs, "path", path);
 
     error = PyObject_Call(PyExc_ImportError, args, kwargs);
-    if (error!= NULL) {
-        PyErr_SetObject((PyObject *) Py_TYPE(error), error);
+    if (error != NULL) {
+        PyErr_SetObject((PyObject *)Py_TYPE(error), error);
         Py_DECREF(error);
     }