summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-02-20 12:21:52 +0000
committerNicholas Clark <nick@ccl4.org>2010-05-01 14:01:41 +0100
commitc6bf6a65e4bf512beae58d59446046f4ca20372f (patch)
tree1c57f74df902dcff874fbc60c8649788ad6919ce /mg.c
parent620d5b66847dea9c84e6d8017fd953345ed9af51 (diff)
downloadperl-c6bf6a65e4bf512beae58d59446046f4ca20372f.tar.gz
On the save stack, store the save type as the bottom 6 bits of a UV.
This makes the other 26 (or 58) bits available for save data.
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mg.c b/mg.c
index c89be40f5f..59ead344d0 100644
--- a/mg.c
+++ b/mg.c
@@ -3071,11 +3071,12 @@ S_restore_magic(pTHX_ const void *p)
*/
if (PL_savestack_ix == mgs->mgs_ss_ix)
{
- I32 popval = SSPOPINT;
- assert(popval == SAVEt_DESTRUCTOR_X);
+ UV type = SSPOPUV;
+ I32 popval;
+ assert(type == SAVEt_DESTRUCTOR_X);
PL_savestack_ix -= 2;
- popval = SSPOPINT;
- assert(popval == SAVEt_ALLOC);
+ type = SSPOPUV;
+ assert(type == SAVEt_ALLOC);
popval = SSPOPINT;
PL_savestack_ix -= popval;
}