Subject: | Exceptions in Perl callbacks leak memory |
If a Perl callbacks throws an exception during a transformation, the libxslt transform context is leaked. This includes:
* input callbacks
* security callbacks
* extenstion functions
* extension elements
Possible solutions:
1. Don't croak in the callback handlers but store the error in a global. Then 'transform' can check for an error and croak after the transform context and other data structures were freed.
2. Always create an XML::LibXSLT::TransformContext Perl object for transform contexts. Make these objects mortal and implement a DESTROY method that frees the context.