[Python-checkins] r56348 - python/trunk/Modules/_ctypes/_ctypes.c
thomas.heller
python-checkins at python.org
Fri Jul 13 15:59:40 CEST 2007
Author: thomas.heller
Date: Fri Jul 13 15:59:39 2007
New Revision: 56348
Modified:
python/trunk/Modules/_ctypes/_ctypes.c
Log:
Repair COMError. Since exceptions are new style classes now, setting
the methods and docstring after the type creation does not work, they
must be in the dictionary before creating the type.
Modified: python/trunk/Modules/_ctypes/_ctypes.c
==============================================================================
--- python/trunk/Modules/_ctypes/_ctypes.c (original)
+++ python/trunk/Modules/_ctypes/_ctypes.c Fri Jul 13 15:59:39 2007
@@ -4520,11 +4520,6 @@
PyObject *s;
int status;
- ComError = PyErr_NewException("_ctypes.COMError",
- NULL,
- dict);
- if (ComError == NULL)
- return -1;
while (methods->ml_name) {
/* get a wrapper for the built-in function */
PyObject *func = PyCFunction_New(methods, NULL);
@@ -4539,13 +4534,24 @@
Py_DECREF(meth);
++methods;
}
- Py_INCREF(ComError);
+
s = PyString_FromString(comerror_doc);
if (s == NULL)
return -1;
status = PyDict_SetItemString(dict, "__doc__", s);
Py_DECREF(s);
- return status;
+ if (status == -1) {
+ Py_DECREF(dict);
+ return -1;
+ }
+
+ ComError = PyErr_NewException("_ctypes.COMError",
+ NULL,
+ dict);
+ if (ComError == NULL)
+ return -1;
+
+ return 0;
}
#endif
More information about the Python-checkins
mailing list