Compress::Raw::Bzip2             T_PTROBJ
Compress::Raw::Bunzip2             T_PTROBJ

const char *			T_PV
char *			        T_PV
uLong				T_UV
z_off_t				T_UV
DualType                	T_DUAL
int_undef           T_IV_undef


#############################################################################
INPUT
T_UV
	$var = (unsigned long)SvUV($arg)
T_IV_undef
	if (SvOK($arg))
        $var = SvIV($arg);
    else
        $var = 0 ;
T_PV
	if (SvOK($arg))
            $var = ($type)SvPVbyte_nolen($arg);
	else
            $var = NULL ;

T_PTROBJ_AV
        if ($arg == &PL_sv_undef || $arg == NULL)
            $var = NULL ;
        else if (sv_derived_from($arg, \"${ntype}\")) {
            IV tmp = SvIV(getInnerObject($arg)) ;
            $var = INT2PTR($type, tmp);
            
        }
        else
            croak(\"$var is not of type ${ntype}\")



#############################################################################
OUTPUT
T_UV
	sv_setuv($arg, (IV)$var);


T_DUAL
        setDUALstatus($arg, $var) ;


T_PV
        sv_setpv((SV*)$arg, $var);
        


