Changeset 3955 for src/perl5

Show
Ignore:
Timestamp:
05/27/05 04:25:14 (4 years ago)
Author:
clkao
svk:copy_cache_prev:
5515
Message:

pugs method call from p5.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/perl5/perl5.c

    r3953 r3955  
    1919 
    2020"our $AUTOLOAD;" 
    21 "sub AUTOLOAD { }" 
    22  
     21"sub AUTOLOAD { pugs::guts::invoke($AUTOLOAD, @_) } " 
     22"sub DESTROY {}" 
    2323"package pugs::guts;" 
     24"our @ISA=('pugs');" 
    2425"sub code { my ($class, $val) = @_;" 
    2526"          sub { pugs::guts::invoke($val, undef, @_) } }" 
     
    2829XS(_pugs_guts_invoke) { 
    2930    Val *val, *inv, **stack; 
    30     SV *ret; 
     31    SV *ret, *sv; 
    3132    int i; 
    3233    dXSARGS; 
     
    3435        Perl_croak(aTHX_ "hate software"); 
    3536 
    36     val = pugs_SvToVal(ST(0)); 
     37    sv = ST(0); 
     38    if (sv_isa(sv, "pugs")) { 
     39        val = pugs_SvToVal(ST(0)); 
     40    } 
     41    else { 
     42        sv_dump (sv); 
     43        val = pugs_PvToVal(SvPV_nolen(sv)); 
     44        fprintf(stderr, "from method\n"); 
     45    } 
    3746    inv = pugs_SvToVal(ST(1)); 
    3847 
     
    4251    } 
    4352    stack[i-2] = NULL; 
    44  
    45     /* fprintf(stderr, "back to pugs\n"); */ 
     53     
    4654    ST(0) = pugs_Apply(val, inv, stack); 
     55    sv_dump (ret); 
    4756    free (stack); 
    4857