Changeset 3953 for src/perl5

Show
Ignore:
Timestamp:
05/27/05 04:16:28 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* restore old context properly.

Location:
src/perl5
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • src/perl5/perl5.c

    r3950 r3953  
    204204    SV *rv; 
    205205    SV *sv; 
     206    void *old_env = pugs_getenv(); 
    206207 
    207208    dSP; 
     
    236237    LEAVE; 
    237238 
     239    pugs_setenv(old_env); 
    238240    return rv; 
    239241} 
     
    247249} 
    248250 
    249 void perl5_set_svref (const char *name, void *val) 
    250 { 
    251     /* fprintf(stderr, "setsvref: name: %s, mkvalref: %p\n", name, val); */ 
    252  
    253     SV *container = get_sv("pugs::env", TRUE); 
    254  
    255     SV *sv = newSV(0); 
    256     sv_setref_pv(sv, "pugs", val); 
    257  
    258     sv_setsv(container, sv); 
    259 } 
    260  
    261251SV * 
    262252perl5_eval(char *code, void *env, int cxt) 
     
    264254    dSP; 
    265255    SV* sv; 
     256    void *old_env = pugs_getenv(); 
    266257 
    267258    ENTER; 
     
    279270    PUTBACK; 
    280271 
     272 
    281273    FREETMPS; 
    282274    LEAVE; 
    283275 
     276    pugs_setenv(old_env); 
    284277    return sv; 
    285278} 
  • src/perl5/perl5.h

    r3943 r3953  
    1515SV * 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 );