TYPEMAP cmark_node * T_NODE cmark_iter * T_ITER cmark_parser * T_PARSER const char * T_UTF8 char * T_UTF8 # The custom OUTPUT for T_IV generates better code than the default. # It looks like this is due to weirdness in ExtUtils::ParseXS which creates # suboptimal code for "targetable" return types. int T_IV long T_IV cmark_node_type T_IV cmark_event_type T_IV INPUT T_NODE $var = (cmark_node*)S_sv2c(aTHX_ $arg, \"CommonMark::Node\", 16, cv, \"$var\"); T_ITER $var = (cmark_iter*)S_sv2c(aTHX_ $arg, \"CommonMark::Iterator\", 20, cv, \"$var\"); T_PARSER $var = (cmark_parser*)S_sv2c(aTHX_ $arg, \"CommonMark::Parser\", 18, cv, \"$var\"); T_UTF8 $var = SvPVutf8_nolen($arg) OUTPUT T_NODE $arg = S_node2sv(aTHX_ $var); T_ITER sv_setref_pv($arg, \"CommonMark::Iterator\", $var); T_PARSER sv_setref_pv($arg, \"CommonMark::Parser\", $var); T_UTF8 $arg = newSVpv($var, 0); SvUTF8_on($arg); T_IV $arg = newSViv((IV)$var);