diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-02-20 18:35:23 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-05-04 07:06:51 +0100 |
commit | 6c61c2d446974ecc679f2ed5671233e66fec0984 (patch) | |
tree | 8d83be7caddf3f35b76d85fbcd17146bdc9bdffa /scope.c | |
parent | d9a396a3ae9f39aac2f1747225a595665786dffc (diff) | |
download | perl-6c61c2d446974ecc679f2ed5671233e66fec0984.tar.gz |
For SAVEt_I8, save the value with the type.
Diffstat (limited to 'scope.c')
-rw-r--r-- | scope.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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; |