Revision: libxslt-ruby--dilinger--0--patch-2
Archive: dilinger@voxel.net--2004
Creator: Andres Salomon <dilinger@voxel.net>
Date: Tue Jul 20 23:33:10 EDT 2004
Standard-date: 2004-07-21 03:33:10 GMT
Modified-files: libxslt.c ruby_xslt_stylesheet.c
    ruby_xslt_transform_context.c
New-patches: dilinger@voxel.net--2004/libxslt-ruby--dilinger--0--patch-2
Summary: Make libxslt work w/ ruby1.8.
Keywords: 

Patch is an excerpt of work by Martin Povolny.  It includes code that makes
libxslt work in ruby1.8, as well as some sanity stuff that NULs some free'd
variables.  Martin's changelog entry:

 2.1.2004 Martin Povolny <martin@solnet.cz>
  * libxslt.c: added call to ruby_init_xslt_transform_context() to make it 
    work on ruby1.8



* computing changeset
A  {arch}/libxslt-ruby/libxslt-ruby--dilinger/libxslt-ruby--dilinger--0/dilinger@voxel.net--2004/patch-log/patch-2
M  libxslt.c
M  ruby_xslt_stylesheet.c
M  ruby_xslt_transform_context.c
* changeset report
* added files

    {arch}/libxslt-ruby/libxslt-ruby--dilinger/libxslt-ruby--dilinger--0/dilinger@voxel.net--2004/patch-log/patch-2

* modified files

--- orig/libxslt.c
+++ mod/libxslt.c
@@ -178,7 +178,7 @@
   rb_define_const(cXSLT, "NAMESPACE_XALAN", rb_str_new2(XSLT_XALAN_NAMESPACE));
 
   ruby_init_xslt_stylesheet();
-
+  ruby_init_xslt_transform_context();
 
   rb_define_singleton_method(cXSLT, "file", ruby_xslt_new_file, 1);
   rb_define_singleton_method(cXSLT, "new", ruby_xslt_new, 0);


--- orig/ruby_xslt_stylesheet.c
+++ mod/ruby_xslt_stylesheet.c
@@ -121,8 +121,10 @@
 
 void
 ruby_xslt_stylesheet_free(ruby_xslt_stylesheet *xss) {
-  if (xss->xsp != NULL)
+  if (xss->xsp != NULL) {
     xsltFreeStylesheet(xss->xsp);
+    xss->xsp = NULL;
+  }
 
   free(xss);
 }


--- orig/ruby_xslt_transform_context.c
+++ mod/ruby_xslt_transform_context.c
@@ -9,8 +9,10 @@
 
 void
 ruby_xslt_transform_context_free(ruby_xslt_transform_context *rxtc) {
-  if (rxtc->ctxt != NULL)
+  if (rxtc->ctxt != NULL) {
     xsltFreeTransformContext(rxtc->ctxt);
+    rxtc->ctxt = NULL;
+  }
   free(rxtc);
 }
 



