Sha256: c6ddf2e8ec461ed52644c2427d1f20cb4edbe872daa8b34e76530d11878725a9

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

/* $Id: ruby_xslt_transform_context.c,v 1.1.1.1 2006/03/09 01:36:19 roscopeco Exp $ */

/* Please see the LICENSE file for copyright and distribution information */

#include "libxslt.h"
#include "ruby_xslt_transform_context.h"
#include "libxml-ruby/libxml.h"

VALUE cXSLTTransformContext;

void
ruby_xslt_transform_context_free(ruby_xslt_transform_context *rxtc) {
  if (rxtc->ctxt != NULL) {
    xsltFreeTransformContext(rxtc->ctxt);
    rxtc->ctxt = NULL;
  }
  free(rxtc);
}

void
ruby_xslt_transform_context_mark(ruby_xslt_transform_context *rxtc) {
  if (rxtc == NULL) return;
  if (!NIL_P(rxtc->xslt)) rb_gc_mark(rxtc->xslt);
}


VALUE
ruby_xslt_transform_context_new(VALUE class, VALUE xslt,
				      xsltTransformContextPtr ctxt) {
  ruby_xslt_transform_context *rxtc;
  rxtc = ALLOC(ruby_xslt_transform_context);
  ruby_xml_parser_count++;
  rxtc->ctxt = ctxt;
  rxtc->xslt = xslt;
   //fprintf(stderr,"ruby_xslt_transform_context_new 2\n");
   //if (class == Qfalse)
    //fprintf(stderr,"ruby_xslt_transform_context_new: EEEEK!\n");
  return(Data_Wrap_Struct(class, ruby_xslt_transform_context_mark,
			  ruby_xslt_transform_context_free, rxtc));
}


VALUE
ruby_xslt_transform_context_new2(VALUE class, VALUE xslt) {
  return(ruby_xslt_transform_context_new(class, xslt, NULL));
}


VALUE
ruby_xslt_transform_context_new3(VALUE xslt) {
  return(ruby_xslt_transform_context_new2(cXSLTTransformContext, xslt));
}

#ifdef RDOC_NEVER_DEFINED
  mXML = rb_define_module("XML");
  cXSLT = rb_define_class_under(mXML, "XSLT", rb_cObject);
#endif

void
ruby_init_xslt_transform_context(void) {
  cXSLTTransformContext =
    rb_define_class_under(cXSLT, "TransformContext", rb_cObject);
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
libxslt-ruby-0.3.6 ext/xml/ruby_xslt_transform_context.c