# Treat this as -*- text -*- TYPEMAP const char * T_PTROBJ RPM::Database O_RPM_Tied RPM::Header O_RPM_Tied RPM::Package O_RPM_Blessed RPM::Transaction O_RPM_Blessed OUTPUT O_RPM_Tied if ($var) { $arg = sv_bless(sv_2mortal(newRV_noinc((SV*)$var)), gv_stashpv(\"${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\", TRUE)); } else { $arg = newSVsv(&PL_sv_undef); } O_RPM_Blessed if ($var) { sv_setref_pv($arg, \"${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\", (void*)$var); } else { $arg = newSVsv(&PL_sv_undef); } INPUT O_RPM_Tied if (sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV)) $var = (HV*)SvRV($arg); else { rpm_error(aTHX_ RPMERR_BADARG, \"${Package}::$func_name: not a blessed HV reference\"); XSRETURN_UNDEF; } O_RPM_Blessed if (sv_derived_from($arg, \"${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = ($type) tmp; } else { rpm_error(aTHX_ RPMERR_BADARG, \"$var is not of type ${ntype}\"); XSRETURN_UNDEF; }