Viewing File: /usr/local/cpanel/3rdparty/perl/536/cpanel-lib/x86_64-linux/B/C/OverLoad/B/PVLV.pm

package B::PVLV;

use B::C::Std;

use B q/cchar/;

use B::C::File    qw/xpvlvsect svsect init/;
use B::C::Decimal qw/get_double_value/;

# Warning not covered by the (cpanel)core test suite...
# FIXME... add some test coverage for PVLV

sub do_save ( $sv, $fullname = undef ) {

    die("We know of no code that produces a PVLV. Please contact the busy camels immediately.");

}

1;

__END__

{
    my ( $ix, $sym ) = svsect()->reserve($sv);
    svsect()->debug( $fullname, $sv );

    my ( $pvsym, $cur, $len, $pv, $flags ) = $sv->save_svu( $sym, $fullname );

    xpvlvsect()->comment('xmg_stash, xmg_u, xpv_cur, xpv_len_u, xiv_u, xnv_u, xlv_targoff_u, xlv_targlen, xlv_targ, xlv_type, xlv_flags');
    my $xpv_ix = xpvlvsect()->saddl(
        "%s"   => $sv->save_magic_stash,           # xmg_stash
        "{%s}" => $sv->save_magic($fullname),      # xmg_u
        "%u"   => $cur,                            # xpv_cur
        "{%u}" => $len,                            # xpv_len_u
        "%s"   => 0,                               # xiv_u - Was 0 and labeled as 0/*GvNAME later*/
        "%s"   => get_double_value( $sv->NVX ),    # xnv_u
        "%s"   => $sv->TARGOFF,                    # xlv_targoff_u
        "%s"   => $sv->TARGLEN,                    # xlv_targlen
        "%s"   => $sv->TARG,                       # xlv_targ
        "%s"   => cchar( $sv->TYPE ),              # xlv_type
        "%d"   => $sv->LvFLAGS,                    # xlv_flags # STATIC_HV: LvFLAGS is unimplemented in B
    );

    svsect()->supdate( $ix, "&xpvlv_list[%d], %Lu, 0x%x, {%s}", xpvlvsect()->index, $sv->REFCNT, $flags, $pvsym );

    return $sym;
}

1;
Back to Directory File Manager