diff options
author | Larry Wall <lwall@netlabs.com> | 1994-10-17 23:00:00 +0000 |
---|---|---|
committer | Larry Wall <lwall@netlabs.com> | 1994-10-17 23:00:00 +0000 |
commit | a0d0e21ea6ea90a22318550944fe6cb09ae10cda (patch) | |
tree | faca1018149b736b1142f487e44d1ff2de5cc1fa /scope.h | |
parent | 85e6fe838fb25b257a1b363debf8691c0992ef71 (diff) | |
download | perl-a0d0e21ea6ea90a22318550944fe6cb09ae10cda.tar.gz |
perl 5.000perl-5.000
[editor's note: this commit combines approximate 4 months of furious
releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for
details. Andy notes that;
Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge
backup tapes from that era seem to be readable anymore. I guess 13 years
exceeds the shelf life for that backup technology :-(.
]
Diffstat (limited to 'scope.h')
-rw-r--r-- | scope.h | 54 |
1 files changed, 41 insertions, 13 deletions
@@ -5,26 +5,54 @@ #define SAVEt_INT 4 #define SAVEt_LONG 5 #define SAVEt_I32 6 -#define SAVEt_SPTR 7 -#define SAVEt_APTR 8 -#define SAVEt_HPTR 9 -#define SAVEt_PPTR 10 -#define SAVEt_NSTAB 11 -#define SAVEt_SVREF 12 -#define SAVEt_GP 13 -#define SAVEt_FREESV 14 -#define SAVEt_FREEOP 15 -#define SAVEt_FREEPV 16 -#define SAVEt_CLEARSV 17 -#define SAVEt_DELETE 18 +#define SAVEt_IV 7 +#define SAVEt_SPTR 8 +#define SAVEt_APTR 9 +#define SAVEt_HPTR 10 +#define SAVEt_PPTR 11 +#define SAVEt_NSTAB 12 +#define SAVEt_SVREF 13 +#define SAVEt_GP 14 +#define SAVEt_FREESV 15 +#define SAVEt_FREEOP 16 +#define SAVEt_FREEPV 17 +#define SAVEt_CLEARSV 18 +#define SAVEt_DELETE 19 +#define SAVEt_DESTRUCTOR 20 +#define SAVEt_REGCONTEXT 21 #define SSCHECK(need) if (savestack_ix + need > savestack_max) savestack_grow() #define SSPUSHINT(i) (savestack[savestack_ix++].any_i32 = (I32)(i)) #define SSPUSHLONG(i) (savestack[savestack_ix++].any_long = (long)(i)) +#define SSPUSHIV(i) (savestack[savestack_ix++].any_iv = (IV)(i)) #define SSPUSHPTR(p) (savestack[savestack_ix++].any_ptr = (void*)(p)) +#define SSPUSHDPTR(p) (savestack[savestack_ix++].any_dptr = (p)) #define SSPOPINT (savestack[--savestack_ix].any_i32) #define SSPOPLONG (savestack[--savestack_ix].any_long) +#define SSPOPIV (savestack[--savestack_ix].any_iv) #define SSPOPPTR (savestack[--savestack_ix].any_ptr) +#define SSPOPDPTR (savestack[--savestack_ix].any_dptr) -#define FREE_TMPS() if (tmps_ix > tmps_floor) free_tmps() +#define SAVETMPS save_int((int*)&tmps_floor), tmps_floor = tmps_ix +#define FREETMPS if (tmps_ix > tmps_floor) free_tmps() +#ifdef DEPRECATED +#define FREE_TMPS() FREETMPS +#endif + +#define ENTER push_scope() +#define LEAVE pop_scope() #define LEAVE_SCOPE(old) if (savestack_ix > old) leave_scope(old) + +#define SAVEINT(i) save_int((int*)(&i)); +#define SAVEIV(i) save_iv((IV*)(&i)); +#define SAVEI32(i) save_I32((I32*)(&i)); +#define SAVELONG(l) save_long((long*)(&l)); +#define SAVESPTR(s) save_sptr((SV**)(&s)) +#define SAVEPPTR(s) save_pptr((char**)(&s)) +#define SAVEFREESV(s) save_freesv((SV*)(s)) +#define SAVEFREEOP(o) save_freeop((OP*)(o)) +#define SAVEFREEPV(p) save_freepv((char*)(p)) +#define SAVECLEARSV(sv) save_clearsv((SV**)(&sv)) +#define SAVEDELETE(h,k,l) save_delete((HV*)(h), (char*)(k), (I32)l) +#define SAVEDESTRUCTOR(f,p) save_destructor(f,(void*)p) + |