summaryrefslogtreecommitdiff
path: root/scope.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-02-20 18:35:23 +0000
committerNicholas Clark <nick@ccl4.org>2010-05-04 07:06:51 +0100
commit6c61c2d446974ecc679f2ed5671233e66fec0984 (patch)
tree8d83be7caddf3f35b76d85fbcd17146bdc9bdffa /scope.c
parentd9a396a3ae9f39aac2f1747225a595665786dffc (diff)
downloadperl-6c61c2d446974ecc679f2ed5671233e66fec0984.tar.gz
For SAVEt_I8, save the value with the type.
Diffstat (limited to 'scope.c')
-rw-r--r--scope.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/scope.c b/scope.c
index 8a769a3b12..9f9da423bb 100644
--- a/scope.c
+++ b/scope.c
@@ -405,7 +405,9 @@ Perl_save_I8(pTHX_ I8 *bytep)
PERL_ARGS_ASSERT_SAVE_I8;
- save_pushi32ptr(*bytep, bytep, SAVEt_I8);
+ SSCHECK(2);
+ SSPUSHPTR(bytep);
+ SSPUSHUV(SAVEt_I8 | ((UV)*bytep << 8));
}
void
@@ -1088,7 +1090,7 @@ Perl_leave_scope(pTHX_ I32 base)
break;
case SAVEt_I8: /* I8 reference */
ptr = SSPOPPTR;
- *(I8*)ptr = (I8)SSPOPINT;
+ *(I8*)ptr = (I8)(uv >> 8);
break;
case SAVEt_DESTRUCTOR:
ptr = SSPOPPTR;