This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.0 alpha 9
[perl5.git] / scope.h
CommitLineData
79072805
LW
1#define SAVEt_ITEM 0
2#define SAVEt_SV 1
3#define SAVEt_AV 2
4#define SAVEt_HV 3
5#define SAVEt_INT 4
85e6fe83
LW
6#define SAVEt_LONG 5
7#define SAVEt_I32 6
8#define SAVEt_SPTR 7
79072805 9#define SAVEt_APTR 8
85e6fe83
LW
10#define SAVEt_HPTR 9
11#define SAVEt_PPTR 10
12#define SAVEt_NSTAB 11
13#define SAVEt_SVREF 12
14#define SAVEt_GP 13
15#define SAVEt_FREESV 14
16#define SAVEt_FREEOP 15
17#define SAVEt_FREEPV 16
18#define SAVEt_CLEARSV 17
19#define SAVEt_DELETE 18
79072805
LW
20
21#define SSCHECK(need) if (savestack_ix + need > savestack_max) savestack_grow()
22#define SSPUSHINT(i) (savestack[savestack_ix++].any_i32 = (I32)(i))
85e6fe83 23#define SSPUSHLONG(i) (savestack[savestack_ix++].any_long = (long)(i))
79072805
LW
24#define SSPUSHPTR(p) (savestack[savestack_ix++].any_ptr = (void*)(p))
25#define SSPOPINT (savestack[--savestack_ix].any_i32)
85e6fe83 26#define SSPOPLONG (savestack[--savestack_ix].any_long)
79072805 27#define SSPOPPTR (savestack[--savestack_ix].any_ptr)
8990e307
LW
28
29#define FREE_TMPS() if (tmps_ix > tmps_floor) free_tmps()
30#define LEAVE_SCOPE(old) if (savestack_ix > old) leave_scope(old)