TYPEMAP
PopplerDocument * T_PTROBJ
hPopplerDocument * T_OBJECT
hPopplerPage * T_OBJECT
hPopplerAttachment * T_OBJECT
hPageDimension * T_OBJECT
OutputDevData * T_OBJECT
# GooString * newSVGooString
PopplerPage * T_PTROBJ
cairo_t * T_OBJECT
cairo_surface_t * T_OBJECT
int * T_INT
INPUT
# newSVGooString
# if (sv_isobject($arg) && SvTYPE(SvRV($arg)) == SVt_PVMG)
# {
# IV tmp = SvIV((SV*)SvRV($arg));
# $var = INT2PTR($type, tmp);
# }
# else
# Perl_croak(aTHX_ \"${Package}::$func_name(): $var is not a blessed SV reference\");
T_OBJECT
if (sv_isobject($arg) && SvTYPE(SvRV($arg)) == SVt_PVMG)
{
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type, tmp);
}
else
Perl_croak(aTHX_ \"${Package}::$func_name(): $var is not a blessed SV reference\");
T_POPPLERPERL_GENERIC_WRAPPER
$var = Sv${;
(my $ntype = $type) =~ s/(?:const\s+)?([:\w]+)(?:\s*\*)$/$1/x;
my $result = $type;
if ($ntype =~ m/(.+)_t(_.+)?/) {
my ($name, $options) = ($1, $2);
$name =~ s/([^_]+)/ucfirst $1/ge;
$name =~ s/_//g;
$result = $name . $options;
}
\$result} ($arg);
OUTPUT
# newSVGooString
# sv_setref_pv($arg, "Goo::String" , (void*)$var);
T_OBJECT
sv_setref_pv($arg, class , (void*)$var);
T_POPPLERPERL_GENERIC_WRAPPER
$arg = newSV${;
(my $ntype = $type) =~ s/(?:const\s+)?([:\w]+)(?:\s*\*)$/$1/x;
my $result = $type;
if ($ntype =~ m/(.+)_t(_.+)?/) {
my ($name, $options) = ($1, $2);
$name =~ s/([^_]+)/ucfirst $1/ge;
$name =~ s/_//g;
$result = $name . $options;
}
\$result} ($var);