summaryrefslogtreecommitdiff
path: root/scope.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-02-20 17:40:04 +0000
committerNicholas Clark <nick@ccl4.org>2010-05-03 20:24:50 +0100
commit6550424581c83583e72aa799a12d2a2e68d9e5f1 (patch)
tree39aff86558d4860022c180494b62764e0a22e34c /scope.c
parent1c3d5054181a1dff3dab69a3f7c820ac692c8730 (diff)
downloadperl-6550424581c83583e72aa799a12d2a2e68d9e5f1.tar.gz
For SAVEt_BOOL, save the value with the type.
Diffstat (limited to 'scope.c')
-rw-r--r--scope.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/scope.c b/scope.c
index 5b7b614243..8a769a3b12 100644
--- a/scope.c
+++ b/scope.c
@@ -373,10 +373,9 @@ Perl_save_bool(pTHX_ bool *boolp)
PERL_ARGS_ASSERT_SAVE_BOOL;
- SSCHECK(3);
- SSPUSHBOOL(*boolp);
+ SSCHECK(2);
SSPUSHPTR(boolp);
- SSPUSHUV(SAVEt_BOOL);
+ SSPUSHUV(SAVEt_BOOL | (*boolp << 8));
}
void
@@ -799,7 +798,7 @@ Perl_leave_scope(pTHX_ I32 base)
break;
case SAVEt_BOOL: /* bool reference */
ptr = SSPOPPTR;
- *(bool*)ptr = cBOOL(SSPOPBOOL);
+ *(bool*)ptr = cBOOL(uv >> 8);
break;
case SAVEt_I32: /* I32 reference */
ptr = SSPOPPTR;