Algorithm-KNN-XS
view release on metacpan or search on metacpan
perlobject.map view on Meta::CPAN
# "perlobject.map" Dean Roehrich, version 19960302
#
# TYPEMAPs
#
# HV * -> unblessed Perl HV object.
# AV * -> unblessed Perl AV object.
#
# INPUT/OUTPUT maps
#
# O_* -> opaque blessed objects
# T_* -> opaque blessed or unblessed objects
#
# O_OBJECT -> link an opaque C or C++ object to a blessed Perl object.
# T_OBJECT -> link an opaque C or C++ object to an unblessed Perl object.
# O_HvRV -> a blessed Perl HV object.
# T_HvRV -> an unblessed Perl HV object.
# O_AvRV -> a blessed Perl AV object.
# T_AvRV -> an unblessed Perl AV object.
TYPEMAP
HV * T_HvRV
AV * T_AvRV
######################################################################
OUTPUT
# The Perl object is blessed into 'CLASS', which should be a
# char* having the name of the package for the blessing.
O_OBJECT
sv_setref_pv( $arg, CLASS, (void*)$var );
T_OBJECT
sv_setref_pv( $arg, Nullch, (void*)$var );
# Cannot use sv_setref_pv() because that will destroy
perlobject.map view on Meta::CPAN
# the AV-ness of the object. Remember that newRV() will increment
# the refcount.
O_AvRV
$arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) );
T_AvRV
$arg = newRV((SV*)$var);
######################################################################
INPUT
O_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
$var = ($type)SvIV((SV*)SvRV( $arg ));
else{
warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
XSRETURN_UNDEF;
}
T_OBJECT
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
PUSH_MULTICALL||5.011000|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
PUSHp|||
PUSHs|||
PUSHu|5.004000||p
PUTBACK|||
PerlIO_clearerr||5.007003|
PerlIO_close||5.007003|
PerlIO_context_layers||5.009004|
PerlIO_eof||5.007003|
PerlIO_error||5.007003|
PerlIO_fileno||5.007003|
PerlIO_fill||5.007003|
PerlIO_flush||5.007003|
PerlIO_get_base||5.007003|
PerlIO_get_bufsiz||5.007003|
{
dSP;
SV* sv = newSVpv(p, 0);
PUSHMARK(sp);
eval_sv(sv, G_SCALAR);
SvREFCNT_dec(sv);
SPAGAIN;
sv = POPs;
PUTBACK;
if (croak_on_error && SvTRUE(GvSV(errgv)))
croak(SvPVx(GvSV(errgv), na));
return sv;
}
#endif
#endif
LibANNInterface* O_OBJECT
bool T_BOOL
std::string T_STRING
std::vector< double > T_DOUBLE_VECTOR
std::vector< std::vector< double > > T_DOUBLE_VECTOR_VECTOR
INPUT
T_BOOL
$var = (bool)SvTRUE($arg)
T_STRING
if (SvOK($arg) && !SvROK($arg)) {
$var = std::string(SvPV_nolen($arg));
} else {
croak(\"${Package}::$func_name() -- $var is not a string\");
XSRETURN_UNDEF;
tmp.push_back(SvNV(*av_fetch(av_2, j, 0)));
}
${var}.push_back(tmp);
}
} else {
croak(\"${Package}::$func_name() -- $var is not a array reference\");
XSRETURN_UNDEF;
}
OUTPUT
T_STRING
$arg = newSVpvn($var.c_str(), $var.length());
T_DOUBLE_VECTOR
AV* av = newAV();
$arg = newRV_noinc((SV*)av);
av_extend(av, $var.size() - 1);
I32 i = 0;
( run in 0.759 second using v1.01-cache-2.11-cpan-4e96b696675 )