Rafa de la Torre <rto...@carto.com> writes:
>               exc = PyErr_NewException(exception_map[i].name, base, dict);
> +             Py_INCREF(exc);
>               PyModule_AddObject(mod, exception_map[i].classname, exc);

Hm.  Seems like if this is a problem, the code for the other three
exceptions is being a bit careless: it does do Py_INCREFs on them,
but not soon enough to ensure no problems.  Also, I wonder why that
code checks for a null result from PyErr_NewException but this doesn't.

Good catch though.  A naive person would have assumed that
PyModule_AddObject would increment the object's refcount, but
the Python docs say "This steals a reference to value", which
I guess must mean that the caller is required to do it.

                        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to