comparison 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
comparison
equal deleted inserted replaced
76388:bf23a6c215f6 76389:e8c87226bcb3
591 PyObject *args, *kwargs, *error; 591 PyObject *args, *kwargs, *error;
592 592
593 if (msg == NULL) 593 if (msg == NULL)
594 return NULL; 594 return NULL;
595 595
596 args = PyTuple_New(1); 596 args = PyTuple_New(0);
597 if (args == NULL) 597 if (args == NULL)
598 return NULL; 598 return NULL;
599 599
600 kwargs = PyDict_New(); 600 kwargs = PyDict_New();
601 if (kwargs == NULL) 601 if (kwargs == NULL) {
602 Py_DECREF(args);
602 return NULL; 603 return NULL;
604 }
603 605
604 if (name == NULL) { 606 if (name == NULL) {
605 Py_INCREF(Py_None); 607 Py_INCREF(Py_None);
606 name = Py_None; 608 name = Py_None;
607 } 609 }
610 Py_INCREF(Py_None); 612 Py_INCREF(Py_None);
611 path = Py_None; 613 path = Py_None;
612 } 614 }
613 615
614 Py_INCREF(msg); 616 Py_INCREF(msg);
615 PyTuple_SetItem(args, 0, NULL);//msg); 617 PyTuple_SET_ITEM(args, 0, msg);
616 PyDict_SetItemString(kwargs, "name", name); 618 PyDict_SetItemString(kwargs, "name", name);
617 PyDict_SetItemString(kwargs, "path", path); 619 PyDict_SetItemString(kwargs, "path", path);
618 620
619 error = PyObject_Call(PyExc_ImportError, args, kwargs); 621 error = PyObject_Call(PyExc_ImportError, args, kwargs);
620 if (error!= NULL) { 622 if (error != NULL) {
621 PyErr_SetObject((PyObject *) Py_TYPE(error), error); 623 PyErr_SetObject((PyObject *)Py_TYPE(error), error);
622 Py_DECREF(error); 624 Py_DECREF(error);
623 } 625 }
624 626
625 Py_DECREF(args); 627 Py_DECREF(args);
626 Py_DECREF(kwargs); 628 Py_DECREF(kwargs);