Tom Lane wrote:
> Well, xml_init calls xmlInitParser() which needs to be cleaned up.
> But since xmlelement doesn't need that, maybe we should factor it
> out of xml_init.
That could help.
> As for the try/catch blocks instead of relying on memory context
> cleanup, I'm not entirely sure if that's still needed or if it's a
> hangover from before we understood how to use xmlMemSetup.
It's for the xmlCleanupParser().
> The note
> at line 27ff of xml.c implies that libxml keeps static pointers to
> allocated things that it thinks will survive indefinitely, so we
> may have to have these. I'm suspicious whether xmlelement doesn't
> have a problem if the called expressions error out ...
Hmm. That could also be fixed if we separated xml_init() and
xmlInitParser().
--
Peter Eisentraut
http://developer.postgresql.org/~petere/