Changeset 3943 for src/perl5

Show
Ignore:
Timestamp:
05/27/05 03:15:20 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* switch to use PL_modglobal.

Location:
src/perl5
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • src/perl5/perl5.c

    r3941 r3943  
    199199 
    200200SV * 
    201 perl5_apply(SV *sub, SV *inv, SV** args, SV *env, int cxt) 
     201perl5_apply(SV *sub, SV *inv, SV** args, void *env, int cxt) 
    202202{ 
    203203    SV **arg; 
     
    210210    SAVETMPS; 
    211211 
    212     if (env != NULL) { 
    213         sv = get_sv("pugs::env", 1); 
    214         save_item(sv); 
    215         sv_setsv(sv, env); 
    216     } 
     212    pugs_setenv(env); 
    217213 
    218214    PUSHMARK(SP); 
     
    251247} 
    252248 
    253 void * perl5_set_svref (const char *name, void *val) 
     249void perl5_set_svref (const char *name, void *val) 
    254250{ 
    255251    /* fprintf(stderr, "setsvref: name: %s, mkvalref: %p\n", name, val); */ 
     
    264260 
    265261SV * 
    266 perl5_eval(char *code, SV *env, int cxt) 
     262perl5_eval(char *code, void *env, int cxt) 
    267263{ 
    268264    dSP; 
     
    272268    SAVETMPS; 
    273269 
    274     if (env != NULL) { 
    275         sv = get_sv("pugs::env", 1); 
    276         save_item(sv); 
    277         sv_setsv(sv, env); 
    278     } 
     270    pugs_setenv(env); 
    279271 
    280272    sv = newSVpv(code, 0); 
  • src/perl5/perl5.h

    r3938 r3943  
    1111SV * perl5_newSViv ( int iv ); 
    1212SV * perl5_newSVnv ( double iv ); 
    13 SV * perl5_apply(SV *sub, SV *inv, SV** args, SV *env, int cxt); 
     13SV * perl5_apply(SV *sub, SV *inv, SV** args, void *env, int cxt); 
    1414bool perl5_can(SV *inv, char *subname); 
    15 SV * perl5_eval(char *code, SV *env, int cxt); 
     15SV * perl5_eval(char *code, void *env, int cxt); 
    1616SV * perl5_get_sv ( const char *name ); 
    17 void * perl5_set_svref ( const char *name, void *sv ); 
     17void perl5_set_svref ( const char *name, void *sv ); 
  • src/perl5/pugsembed.c

    r3941 r3943  
    66{ 
    77    if (!sv_isa(sv, "pugs")) { 
     8        fprintf(stderr, "bad cast\n"); 
     9        sv_dump(sv); 
    810        return (pugs_MkSvRef(sv)); 
    911    } 
     12    fprintf(stderr, "good cast\n"); 
    1013    IV tmp = SvIV((SV*)SvRV(sv)); 
    1114    return ((Val *)tmp); 
     
    3033    return (sv); 
    3134} 
     35 
     36Val *pugs_getenv () 
     37{ 
     38    SV** rv = hv_fetch(PL_modglobal, "PugsEnv", 7, 0); 
     39    if (*rv == NULL) 
     40        Perl_croak(aTHX_ "hate software so much"); 
     41    IV tmp = SvIV((SV*)SvRV(*rv)); 
     42    return ((Val *)tmp); 
     43} 
     44 
     45void pugs_setenv ( Val *env ) 
     46{ 
     47    if (env == NULL) { return; } 
     48 
     49    SV *sv = newSV(0); 
     50    sv_setref_pv(sv, "pugs", env); 
     51    hv_store(PL_modglobal, "PugsEnv", 7, sv, 0); 
     52} 
  • src/perl5/pugsembed.h

    r3929 r3943  
    2323SV  *pugs_MkValRef ( Val *val ); 
    2424 
     25Val *pugs_getenv (); 
     26void pugs_setenv ( Val *env ); 
     27