Bio-PhyloXS

 view release on metacpan or  search on metacpan

lib/Bio/PhyloXS/Matrices/Characters.xs  view on Meta::CPAN

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

# include "src/Characters.h"
# include "src/TypeSafeData.h"
# include "src/types.h"

Characters* create(const char * classname) {
	Characters *self;
	Newx(self,1,Characters);		
	initialize_characters(self);
	return self;
}

void initialize_characters(Characters* self){
	initialize_typesafedata((TypeSafeData*)self);
	((Identifiable*)self)->_type = _CHARACTERS_;	
	((Identifiable*)self)->_container = _NONE_;	
	((Identifiable*)self)->_index = _CHARACTERS_IDX_;			
}

void destroy_characters(Characters* self) {
	destroy_typesafedata((TypeSafeData*)self);
	//Safefree(self);
}
MODULE = Bio::PhyloXS::Matrices::Characters  PACKAGE = Bio::PhyloXS::Matrices::Characters  

PROTOTYPES: DISABLE


Characters *
create (classname)
	const char *	classname

void
initialize_characters (self)
	Characters *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        initialize_characters(self);
        if (PL_markstack_ptr != temp) {
          /* truly void, because dXSARGS not invoked */
          PL_markstack_ptr = temp;
          XSRETURN_EMPTY; /* return empty stack */
        }
        /* must have used dXSARGS; list context implied */
        return; /* assume stack size is correct */

void
destroy_characters (self)
	Characters *	self
        PREINIT:
        I32* temp;
        PPCODE:
        temp = PL_markstack_ptr++;
        destroy_characters(self);
        if (PL_markstack_ptr != temp) {
          /* truly void, because dXSARGS not invoked */
          PL_markstack_ptr = temp;
          XSRETURN_EMPTY; /* return empty stack */
        }
        /* must have used dXSARGS; list context implied */
        return; /* assume stack size is correct */



( run in 0.757 second using v1.01-cache-2.11-cpan-71847e10f99 )