Changeset 3946 for src/perl5

Show
Ignore:
Timestamp:
05/27/05 03:38:40 (4 years ago)
Author:
clkao
svk:copy_cache_prev:
5515
Message:

propogate return value from pugs

Location:
src/perl5
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • src/perl5/perl5.c

    r3945 r3946  
    3737    inv = pugs_SvToVal(ST(1)); 
    3838 
    39     stack = (Val **)malloc(sizeof(Val*)*items-2); 
     39    stack = (Val **)malloc(sizeof(Val*)*items-1); 
    4040    for (i = 2; i < items; ++i) { 
    4141        stack[i-2] = pugs_SvToVal(ST(i)); 
     
    4545    /* fprintf(stderr, "back to pugs\n"); */ 
    4646    ret = pugs_ValToSv(pugs_Apply (val, inv, stack)); 
    47  
    4847    free (stack); 
     48 
     49    ST(0) = ret; 
    4950     
    5051    XSRETURN(1); 
  • src/perl5/pugsembed.c

    r3944 r3946  
    2323    isa[0] = pugs_PvToVal("Code"); 
    2424    isa[1] = NULL; 
    25     if (__init && pugs_ValToIv(pugs_Apply(pugs_PvToVal("&isa"), val, isa))) { 
    26         stack[0] = sv; 
    27         stack[1] = NULL; 
    28         sv = perl5_apply(newSVpv("code", 0), newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR); 
     25    if (pugs_ValToIv(pugs_Apply(pugs_PvToVal("&isa"), val, isa))) { 
     26        if (__init) { 
     27            stack[0] = sv; 
     28            stack[1] = NULL; 
     29            fprintf (stderr, "isa code\n"); 
     30            sv = perl5_apply(newSVpv("code", 0), newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR); 
     31        } 
     32        else { 
     33            fprintf(stderr, "MkValRef called before perl_init.\n"); 
     34        } 
    2935    } 
    3036    return (sv);