Bio-PhyloXS
view release on metacpan or search on metacpan
lib/Bio/PhyloXS/Matrices/Character.xs view on Meta::CPAN
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
# include "src/Character.h"
# include "src/TypeSafeData.h"
# include "src/types.h"
Character* create(const char * classname) {
Character *self;
Newx(self,1,Character);
initialize_character(self);
return self;
}
void initialize_character(Character* self){
initialize_typesafedata((TypeSafeData*)self);
((Identifiable*)self)->_type = _CHARACTER_;
((Identifiable*)self)->_container = _CHARACTERS_;
((Identifiable*)self)->_index = _CHARACTER_IDX_;
}
void destroy_character(Character* self){
destroy_typesafedata((TypeSafeData*)self);
//Safefree(self);
}
MODULE = Bio::PhyloXS::Matrices::Character PACKAGE = Bio::PhyloXS::Matrices::Character
PROTOTYPES: DISABLE
Character *
create (classname)
const char * classname
void
initialize_character (self)
Character * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
initialize_character(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_character (self)
Character * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
destroy_character(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.584 second using v1.01-cache-2.11-cpan-71847e10f99 )